2009-12-28 4 views

ответ

12

Regex.Matches(textBox1.Text, Regex.Escape(inputString)).Count

+0

ID будет интересным для выполнения этой задачи, но +1 для простого кода. – Matt

+0

спасибо, что мне нужно импортировать, чтобы использовать его? –

+1

'Import System.Text.RegularExpressions' Regex обеспечивает лучшую производительность для простых поисков, особенно если вы используете флаг' Compiled' и предопределяете объект regex. Но я никогда не сравнивал это. –

0

Вы можете позвонить Split, как это:

(" " + textBox1.Text + " ").Split(New String() { inputString }, StringSplitOptions.None); 

В качестве альтернативы, вы можете продолжать называть IndexOf с STARTINDEX равным возвращаемого значения предыдущего вызова в +-пока она возвращает -1.

+0

Прошу прощения, но это примерно в два раза медленнее, чем регулярное выражение, проверено и сравнивается. Код в http://pastebin.com/m52d69edc –

+0

Даже без предварительной компиляции регулярного выражения и с использованием Regex.Escape при каждом вызове регулярное выражение все еще в два раза быстрее, чем метод Split, плюс вы можете очищать дополнительную информацию из регулярного выражения, например где совпадения находятся в исходной строке. –

+0

Должен сказать, что это довольно удивительно. – SLaks