我正在尝试使用Python 2.6中的re模块,在一系列较大的数字中找到每个10位数的数字序列。
我可以轻松地获取不重叠的匹配,但我想要在数字序列中获取每个匹配项。例如,
在"123456789123456789"中,
我应该得到以下列表:
我找到了关于“lookahead”的参考资料,但我看到的例子只显示了数字对,而不是更大的组合,我无法将它们转换为超过两位数。
我可以轻松地获取不重叠的匹配,但我想要在数字序列中获取每个匹配项。例如,
在"123456789123456789"中,
我应该得到以下列表:
[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
我找到了关于“lookahead”的参考资料,但我看到的例子只显示了数字对,而不是更大的组合,我无法将它们转换为超过两位数。
(a|ab|abc)
通常可以重写为非重叠的嵌套捕获组,例如(a(b(c)?)?)?
,在解包匹配时我们忽略除最外层(即最左边)捕获组以外的所有内容;不可否认,这样做会稍微有些麻烦且不太易读。但这也将是一个更高效的正则表达式匹配方式。 - smci