我有一个类似的输入字符串(实际字符串要复杂得多):
223001PAPA DUMMY
在此字符串上,我希望将前 3 个字符作为一组进行匹配,将接下来的 3 个字符作为另一组进行匹配,并希望将匹配项保存在变量中以供进一步处理。
我使用的正则表达式:
(.{3})(.{3}).*
现在在同一个输入字符串上,我还想匹配整个字符串长度,即本例中的 16
(.{16}).*
但我想在单个正则表达式中执行这两个操作,即一个匹配项应匹配完整的输入字符串并保存在变量中,然后另外 2 个匹配项匹配前 3 个字符和后 3 个字符,如上所示,这可能吗? 我该如何继续?尝试反向引用并没有多大帮助
最佳答案
^((.{3})(.{3}).{10})
你可以使用这个。
这里组1
将是16个字符的字符串
组 2
将是前 3
个字符。
组 3
将是接下来的 3
个字符。
https://regex101.com/r/fF8aN0/3
当您将其与 re.findall
一起使用时,您将获得上面定义的 3
值的列表
。
关于regex - 在正则表达式中遍历字符串两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500323/