Python正则表达式搜索
我试图搜索所有那些关键字为“车”的短语: e、 g.text='alice:speed car,my red car,new car',我想找到'speed car','my red car','new car'Python正则表达式搜索,python,regex,search,findall,Python,Regex,Search,Findall,我试图搜索所有那些关键字为“车”的短语: e、 g.text='alice:speed car,my red car,new car',我想找到'speed car','my red car','new car' import re text = 'alice: speed car, my red car, new car' regex = r'([a-zA-Z]+\s)+car' match = re.findall(regex, text) if match: print(match
import re
text = 'alice: speed car, my red car, new car'
regex = r'([a-zA-Z]+\s)+car'
match = re.findall(regex, text)
if match:
print(match)
但上述代码产生:
["speed ", "red ", "new "]
而不是
["speed car", "my red car", "new car"]
哪个是预期的?问题是您没有在正则表达式中捕获“car”,请将整个正则表达式放在一个内部正则表达式中,并使用?:使内部正则表达式成为非捕获组
>>> regex = r'((?:[a-zA-Z]+\s)+car)'
>>> text = 'alice: speed car, my red car, new car'
>>> re.findall(regex, text)
['speed car', 'my red car', 'new car']
问题是您没有在正则表达式中捕获“car”,请将整个正则表达式放在一个和中,并使用?:使内部正则表达式成为非捕获组
>>> regex = r'((?:[a-zA-Z]+\s)+car)'
>>> text = 'alice: speed car, my red car, new car'
>>> re.findall(regex, text)
['speed car', 'my red car', 'new car']