提前感谢您的阅读。
我有一根绳子:
A = "a levels"我想匹配以下所有可能的A级变体:
Pattern = r"a level|a levels"(设置了此模式的形式,我无法更改它。)在搜索之后,我想得到:
["a level","a levels"]我使用findall如下:
B = re.findall(Pattern,A)并得到:
B = "a level"re.findall只匹配第一个项,忽略第二个重叠项。
Per:我尝试使用的Python regex find all overlapping matches?:
B = re.findall(Pattern,A,overlapped = True)并得到以下错误:
TypeError: findall() got an unexpected keyword argument 'overlapped'显然,overlapped不再作为关键字参数存在.
然后我看了这个问题:Python regex find all overlapping matches?并尝试:
C = re.finditer(Pattern,A)
results = match.group()
results = "a level"所以没有更好的了。
我怎样才能得到我想要的输出?
发布于 2016-12-08 17:26:45
如果所有可能的Pattern都与您所展示的类似,那么这可能适用于您:
B=[b for pat in Pattern.split('|') for b in re.findall(pat, A)]当然,除了Pattern之外,这并不是一组简单的替代方案。
https://stackoverflow.com/questions/41045008
复制相似问题