C# 将特定长度字符串中的数字与正则表达式匹配

C# 将特定长度字符串中的数字与正则表达式匹配,c#,regex,C#,Regex,假设我有这样一个字符串:“23423423” 我想找到所有长度为2的数字,正则表达式如下“[0-9]{2}” 现在在我的文本编辑器中,这给了我7个匹配项: 23,34,42,23,34,42,23 然而在c#中,我似乎只得到了4分 23,42,34,42 我需要第一个场景,但找不到解决方案 我尝试过regex.Match()和regex.Matches(),但没有成功 有人知道怎么做吗?对于一个非常类似的问题,有一些解决方案,通过调整其中最简单的一个,您可以使用以下方法: Regex regex

假设我有这样一个字符串:“23423423” 我想找到所有长度为2的数字,正则表达式如下“[0-9]{2}”

现在在我的文本编辑器中,这给了我7个匹配项: 23,34,42,23,34,42,23

然而在c#中,我似乎只得到了4分 23,42,34,42

我需要第一个场景,但找不到解决方案

我尝试过regex.Match()和regex.Matches(),但没有成功

有人知道怎么做吗?

对于一个非常类似的问题,有一些解决方案,通过调整其中最简单的一个,您可以使用以下方法:

Regex regexObj = new Regex("\d\d");
Match matchObj = regexObj.Match(subjectString);
while (matchObj.Success) {
    matchObj = regexObj.Match(subjectString, matchObj.Index + 1); 
}
对于一个非常类似的问题,有一些解决方案,并且,通过调整其中最简单的一个,您可以使用以下方法:

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

使用字符串操作将更容易解决此问题。

使用字符串操作将更容易解决此问题

(?=([0-9][0-9])).
将该正则表达式与Matches()方法一起使用,然后通过调用每个匹配对象上的组(1)来检索匹配的号码

但您使用的是什么编辑器,以及如何让它执行重叠匹配?这不是我使用过的任何编辑器的正常行为

将该正则表达式与Matches()方法一起使用,然后通过调用每个匹配对象上的组(1)来检索匹配的号码


但您使用的是什么编辑器,以及如何让它执行重叠匹配?这不是我使用过的任何编辑器的正常行为。

给定的正则表达式将与C#显示的完全匹配,我们将看到如何使正则表达式后退1个字符并再次开始匹配。给定的正则表达式将与C#显示的完全匹配,我们将看到如何使正则表达式后退1个字符并再次开始匹配。