2009-12-28 109 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

相關問題