python正则表达式如何在两个特定单词之间仅提取一个单词

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)) 预期产出

我想在两个特定单词之间提取一个单词。下面是一个例子。我的例外是提取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))

预期产出:

玛丽

实际产量:

玛丽回来时回来了

更新:感谢您提供的解决方案。我只是意识到我没有清楚地描述我的问题。我想在文章中取消识别某人的姓名或某个组织。这篇文章有如下句子 “让她回来后给办公室打电话”, “她被告知给玛丽回电话”, “当她收到噪音时,她会给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