我跟随1010159552597
,我想找到以10开头的数字,然后是1或0,以7位数结尾。我使用以下RegEx来搜索
(10[01][0-9]{7})
结果如下:1010159552
但我也期望以下内容:1015955259
如何才能获得两个结果?
由于
答案 0 :(得分:1)
正则表达式使用字符,不会回溯先前的匹配。解决这个问题的方法是使用零长度断言(参见下面的代码)来捕获你想要的东西。
(?=(10[01]\d{7}))
结果在捕获组1中:
1010159552
1015955259
(?=(10[01]\d{7}))
确定后续匹配的正向前瞻
(10[01]\d{7})
将原始表达式捕获到捕获组1 答案 1 :(得分:0)
你是正确的,因为你的期望与你的正则表达式匹配,但是,它会尝试找到该匹配的第一个实例。
在你的情况下,第一个词是:
10 - 1 - 0159552
所以这是给出的解决方案。
由于结果重叠,您可能需要查看此文章。