2009-08-19 176 views
0

說我有這樣一個字符串:「23423423」 我想找到所有長度爲2的數字,正則表達式就像這樣「[0-9] {2} 「用正則表達式匹配一定長度的字符串中的數字

現在在我的文本編輯這給了我7場比賽: 23,34,42,23,34,42,23

但是在C#中我似乎只得到4 23,42,34, 42

我需要第一種方案但找不到解決方案。

我試過regex.Match()和regex.Matches()沒有運氣。

任何人都知道如何?

+0

給出的正則表達式將與C#顯示的完全一致,將會看到我們可以做些什麼來使正則表達式退回1個字符並再次開始匹配。 – Lazarus 2009-08-19 15:29:58

回答

5

This question有一些解決方案,以一個非常類似的問題,而且,適應他們的一個最簡單的,你可以使用類似:

Regex regexObj = new Regex("\d\d"); 
Match matchObj = regexObj.Match(subjectString); 
while (matchObj.Success) { 
    matchObj = regexObj.Match(subjectString, matchObj.Index + 1); 
} 
0

解決,這將使用字符串操作容易得多。

0
(?=([0-9][0-9])). 

將該正則表達式與Matches()方法一起使用,然後通過在每個Match對象上調用Group(1)來檢索匹配的數字。

但是你使用了什麼編輯器,你是如何得到它來執行重疊匹配的?這不是任何編輯器的正常行爲我使用了

相關問題