我想提取这个正则表达式的所有出现
\d{7,8}
Run Code Online (Sandbox Code Playgroud)
(每个长度为7或8的数字)
输入可能是这样的
asd123456789bbaasd
我想要的是一个数组:
["1234567", "12345678", "2345678", "23456789"]
Run Code Online (Sandbox Code Playgroud)
所有可能出现的数字,有7或8个长度.
Regex.Matches的工作方式不同,它会返回所有连续出现的匹配项.... ["12345678"]
任何的想法?
对于重叠匹配,您需要在前瞻中捕获.
(?=(\d{7}))(?=(\d{8})?)
Run Code Online (Sandbox Code Playgroud)
因此,如果有7位数匹配,则它们将在组(1)中,如果8位匹配,则在组(2)中.在.NET Regex中,您可以为两个组使用一个名称.
对于获得7场位数的比赛只要有8领先,删除?后(\d{8}) 想在这个演示.