2009-12-28 53 views

回答

12

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

+0

id有兴趣知道这个的性能,但+1清晰简单的代码。 – Matt 2009-12-28 13:10:34

+0

谢谢,我有什么需要导入才能使用它? – 2009-12-28 13:16:08

+1

'Import System.Text.RegularExpressions' 正则表达式为简单的搜索提供了最好的性能,尤其是在使用'Compiled'标志并预先创建正则表达式对象的情况下。但我从来没有以此为基准。 – 2009-12-28 13:16:32

0

你可以叫Split,像这样:

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

或者,您可以保持通话IndexOf用的startIndex等于先前调用的返回值+ 1,直到它返回-1。

+0

我很抱歉,但这大约是正则表达式的两倍,测试和基准测试。代码位于http://pastebin.com/m52d69edc – 2009-12-28 13:47:44

+0

即使没有预编译正则表达式,并且在每次调用时都使用Regex.Escape,正则表达式仍然是Split方式的两倍,并且您还可以从正则表达式中获取其他信息,例如作为匹配位于原始字符串中的位置。 – 2009-12-28 14:00:59

+0

我必须说,这非常令人惊讶。 – SLaks 2009-12-28 14:13:05

相关问题