重叠正则表达式匹配:查找每个数字系列
简介
问题出现如何使用Python 2.6 中的“re”模块。虽然非重叠匹配很简单,但提取所有匹配项却很困难。
解决方案
为了解决此问题,可以在前瞻中使用捕获组。前瞻识别所需的序列,但实际匹配对应于其前面的零宽度子字符串,确保不重叠
实现
import re s = "123456789123456789" matches = re.finditer(r'(?=(\d{10}))', s) results = [int(match.group(1)) for match in matches]
输出
[1234567891, 2345678912, 3456789123, 4567891234, 5678912345, 6789123456, 7891234567, 8912345678, 9123456789]
解释
正则表达式(?=(d{10})) 断言紧邻其右侧的是表示 10 位数字序列 (d{10}) 的捕获组。前瞻不消耗任何字符,因此实际匹配是前瞻之前的零长度子字符串,它们是单独的 10 位数字序列。
以上是如何使用 Python 的're”模块查找字符串中所有重叠的 10 位数字系列?的详细内容。更多信息请关注PHP中文网其他相关文章!