Python正则表达式:重叠模式
假设我有一个字符串:Python正则表达式:重叠模式,python,regex,Python,Regex,假设我有一个字符串: string = 'AvBvC' 我想匹配A、B和C,这就是我所做的: match = re.search('(.*)v(.*)', string) print match.groups() 问题是,结果表明: ('AvB', 'C',) 而不是我想要的,那就是 ('A', 'B', 'C',) 我如何让它捕捉所有重叠的图案 谢谢 (我知道有一些帖子涉及同一个问题,但还没有找到Python的明确答案)你的问题有点不清楚,你似乎有一个比你实际展示的更复杂的字符串 使用
string = 'AvBvC'
我想匹配A
、B
和C
,这就是我所做的:
match = re.search('(.*)v(.*)', string)
print match.groups()
问题是,结果表明:
('AvB', 'C',)
而不是我想要的,那就是
('A', 'B', 'C',)
我如何让它捕捉所有重叠的图案
谢谢
(我知道有一些帖子涉及同一个问题,但还没有找到Python的明确答案)你的问题有点不清楚,你似乎有一个比你实际展示的更复杂的字符串 使用
search()
仅匹配第一个匹配项,可以使用findall()
匹配所有匹配项
matches = re.findall(r'[^v]+', string)
['A', 'B', 'C']
另一个选项是对需要拆分的某些字符进行拆分
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
你的问题有点不清楚,你的问题似乎比你的实际表现更复杂
使用search()
仅匹配第一个匹配项,可以使用findall()
匹配所有匹配项
matches = re.findall(r'[^v]+', string)
['A', 'B', 'C']
另一个选项是对需要拆分的某些字符进行拆分
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
使用re.split
>>> import re
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
为了进一步证明
>>> re.split('vw', 'AAvwBBvwCC')
['AA', 'BB', 'CC']
使用re.split
>>> import re
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
为了进一步证明
>>> re.split('vw', 'AAvwBBvwCC')
['AA', 'BB', 'CC']
请详细说明你想要的确切输出。我猜不出来。@Tim Peters抱歉我想要('A','B','C',)@PeterdGlopper耶!!刚刚修改了我的帖子(我原来的代码比这个长得多,也复杂得多,对不起)更多的细节会有帮助-你可以用split('v')
来做上面的问题,所以我只能假设你有一个更复杂的情况。这可能是你想要的?请详细说明你想要的确切输出。我猜不出来。@Tim Peters抱歉我想要('A','B','C',)@PeterdGlopper耶!!刚刚修改了我的帖子(我原来的代码比这个长得多,也复杂得多,对不起)更多的细节会有帮助-你可以用split('v')
来做上面的问题,所以我只能假设你有一个更复杂的情况。这可能是你想要的?这适用于我的示例,但我的实际字符串包含非单个字符的内容,如A、B、C。。。那么,在使用“搜索”而不是“findall”时,有没有办法做到这一点呢?search()
和match()
只返回一个结果。所以,不。你需要让你的问题更清楚;-)@TimPeters为什么负面前瞻不允许我匹配字符串的开头?@thefourtheye,嗯?如果没有上下文(或代码),我不知道你在问什么-对不起。@thefourtheye,那么有些人肯定会被草率的术语弄糊涂;-)“固定宽度”限制仅适用于向后看-它不适用于向后看。原因很简单,就是实现不同宽度外观的绝对困难;对于“从左到右”的搜索引擎来说,它们是“非常不自然的”。我的例子就是这样,但我的实际字符串包含的不是单个字符的内容,例如a、B、C。。。那么,在使用“搜索”而不是“findall”时,有没有办法做到这一点呢?search()
和match()
只返回一个结果。所以,不。你需要让你的问题更清楚;-)@TimPeters为什么负面前瞻不允许我匹配字符串的开头?@thefourtheye,嗯?如果没有上下文(或代码),我不知道你在问什么-对不起。@thefourtheye,那么有些人肯定会被草率的术语弄糊涂;-)“固定宽度”限制仅适用于向后看-它不适用于向后看。原因很简单,就是实现不同宽度外观的绝对困难;对于“从左到右”的搜索引擎来说,它们是“非常不自然的”。