我编写了以下代码来匹配模式,但我无法获得它。导入重新
pattern = re.compile(r"(\w+) (\w+)")
match = pattern.findall("Hello Chelsea Hello ManU")
print(match)
Out:[(' Hello',' Chelsea'),(' Hello',' ManU')] 我试图实现的是。
[(' Hello',' Chelsea'),(' Chelsea',' Hello'),('你好& #39;,' ManU')]
pattern = re.compile(r"(\w+) (\w+)")
match = pattern.findall("Hello Chelsea Hello")
print(match)
Out:[(' Hello',' Chelsea')]
我努力实现的是。
[(' Hello',' Chelsea'),(' Chelsea',' Hello')]
为什么正则表达式会忽略这两个单词,如果找到匹配以便稍后搜索? 如何实现那个输出。 谢谢。
答案 0 :(得分:2)
使用较新的regex
模块:
import regex as re
s = "Hello Chelsea Hello ManU"
matches = re.findall(r'\b(\w+) (\w+)\b', s, overlapped = True)
print(matches)
# [('Hello', 'Chelsea'), ('Chelsea', 'Hello'), ('Hello', 'ManU')]
答案 1 :(得分:0)
如果您只想要成对单词,为什么要使用正则表达式?
s = "Hello Chelsea Hello ManU".split()
out = [(s[i], s[i+1]) for i in range(len(s)-1)]