python正则表达式如何在两个特定单词之间仅提取一个单词
我想在两个特定单词之间提取一个单词。下面是一个例子。我的例外是提取CALL和BACK之间的单词。但从第一次打电话到最后一次回电话,我总是记着所有的话python正则表达式如何在两个特定单词之间仅提取一个单词,python,regex,Python,Regex,我想在两个特定单词之间提取一个单词。下面是一个例子。我的例外是提取CALL和BACK之间的单词。但从第一次打电话到最后一次回电话,我总是记着所有的话 import regex text = 'ask her to call Mary back when she comes back' p = r'(?i)(?s)call(.*)back' for match in regex.finditer(p, str(text)): print (match.group(1)) 预期产出
import regex
text = 'ask her to call Mary back when she comes back'
p = r'(?i)(?s)call(.*)back'
for match in regex.finditer(p, str(text)):
print (match.group(1))
预期产出:
玛丽
实际产量:
玛丽回来时回来了
更新:感谢您提供的解决方案。我只是意识到我没有清楚地描述我的问题。我想在文章中取消识别某人的姓名或某个组织。这篇文章有如下句子
“让她回来后给办公室打电话”,
“她被告知给玛丽回电话”,
“当她收到噪音时,她会给NIH回电话。”
因此,我的目的是提取上述句子中的“玛丽”、“NIH”。这意味着在“call”和“back”之间只能提取一个单词
p=r’(?i)(?s)call(.*back)提取“call”和“back”之间的所有单词
所以我的问题是,如何在“call”和“back”之间只提取一个单词?这里是如何处理的:
import re
text = 'ask her to call Mary back when she comes back'
for match in re.findall('(?<=call ).*?(?= back)', text):
print(match)
细分:
这是一个积极的想法:(?谢谢。p=r’(?i)(?s)call(.*)back”有效。
Mary