C# 正则表达式-查找多个匹配项

C# 正则表达式-查找多个匹配项,c#,regex,C#,Regex,我有以下1010159552597,我想找到以10开头的数字,然后是1或0,最后是7位数字。我使用以下正则表达式进行搜索 (10[01][0-9]{7}) 给出以下结果:1010159552 但我也会想到以下几点:1015955259 我如何才能同时获得这两个结果 感谢正则表达式使用字符,不返回以前的匹配。解决这个问题的一种方法是使用零长度断言(参见下面的代码)来捕获您想要的内容 密码 结果在捕获组1中: 1010159552 1015955259 解释 ?=10[01]\d{7}正向前瞻确保

我有以下1010159552597,我想找到以10开头的数字,然后是1或0,最后是7位数字。我使用以下正则表达式进行搜索

(10[01][0-9]{7})
给出以下结果:1010159552

但我也会想到以下几点:1015955259

我如何才能同时获得这两个结果

感谢

正则表达式使用字符,不返回以前的匹配。解决这个问题的一种方法是使用零长度断言(参见下面的代码)来捕获您想要的内容

密码 结果在捕获组1中:

1010159552 1015955259 解释 ?=10[01]\d{7}正向前瞻确保后面的匹配 10[01]\d{7}将原始表达式捕获到捕获组1中
你是对的,你的期望确实与你的正则表达式匹配,但是,它会尝试找到匹配的第一个实例

在您的情况下,第一个术语是:

10-1-0159552

这就是给出的解决方案

因为您的结果是重叠的,所以您可能想看看这篇文章


那么,您是否有一个数字列表或一个包含一个长数字的大字符串,或者这是一个用户输入,您只是想测试键入的数字是否匹配?那么decimals 101.007呢?是否需要根据正则表达式返回给定的数字是否有效?正则表达式模式的每个组件都是一个断言
(?=(10[01]\d{7}))