Как я могу получить, сколько раз строка появляется в текстовом поле?Сколько раз строка возникает в другой строке (текстовое поле) VB.NET
Я думал, что функция find вернет количество найденных времен, но, похоже, вернет ее местоположение.
Как я могу получить, сколько раз строка появляется в текстовом поле?Сколько раз строка возникает в другой строке (текстовое поле) VB.NET
Я думал, что функция find вернет количество найденных времен, но, похоже, вернет ее местоположение.
Regex.Matches(textBox1.Text, Regex.Escape(inputString)).Count
Вы можете позвонить Split
, как это:
(" " + textBox1.Text + " ").Split(New String() { inputString }, StringSplitOptions.None);
В качестве альтернативы, вы можете продолжать называть IndexOf
с STARTINDEX равным возвращаемого значения предыдущего вызова в +-пока она возвращает -1.
Прошу прощения, но это примерно в два раза медленнее, чем регулярное выражение, проверено и сравнивается. Код в http://pastebin.com/m52d69edc –
Даже без предварительной компиляции регулярного выражения и с использованием Regex.Escape при каждом вызове регулярное выражение все еще в два раза быстрее, чем метод Split, плюс вы можете очищать дополнительную информацию из регулярного выражения, например где совпадения находятся в исходной строке. –
Должен сказать, что это довольно удивительно. – SLaks
ID будет интересным для выполнения этой задачи, но +1 для простого кода. – Matt
спасибо, что мне нужно импортировать, чтобы использовать его? –
'Import System.Text.RegularExpressions' Regex обеспечивает лучшую производительность для простых поисков, особенно если вы используете флаг' Compiled' и предопределяете объект regex. Но я никогда не сравнивал это. –