import re
text = "May we stop to remember the 2,996 people that died & the more than 6000 injured on #September11"
m = re.findall(r"\bdied|injured\b", text)
if m:
print(m)
else:
print('not match')
我 想匹配的是died和injured包括他们前面3个单词,包括数字,主要是需要数字,这个该如何填写呢?
# -*- coding: UTF-8 -*-
import re
text = "May we stop to remember the 2,996 people that died & the more than 6000 injured on #September11"
m = re.findall("(([a-zA-Z\\d\\,]+\\s){3})(died|injured)", text)
if m:
for i in range(0, len(m)):
print(m[i][2] + "--->" + m[i][0])
else:
print('not match')
died--->2,996 people that
injured--->more than 6000
.*([,\b]*).+([,\b]*).* 试试
每个括号是一个子表达式 在你 匹配的对象中应该有个成员 可以得到 子表示前面或者 后面的值
括号中 的子表达式 就是 数字的值 你只需要在匹配后 得到子表达式 匹配的结果 就可以得到 数字了
没用过 puthon
https://blog.csdn.net/y_silence_/article/details/79411618
用list实现也很直观:
text = "May we stop to remember the 2,996 people that died & the more than 6000 injured on September11"
text=text.split()
print(text[text.index('died')-3:text.index('died')+1])
print(text[text.index('injured')-3:text.index('injured')+1])