2009-08-19 70 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)来检索匹配的数字。

但是你使用了什么编辑器,你是如何得到它来执行重叠匹配的?这不是任何编辑器的正常行为我使用了