Python 在某个字符串之后提取一个字符串

Python 在某个字符串之后提取一个字符串,python,Python,我有一个文本段落my_text,其中包含如下行 ........ licensed in Bangladesh. We are happy to announce ...................... ................................................ 我想从中提取“孟加拉国”一词。要决定我是否想要那个词,取决于句子中是否有“licensed in” 当前代码如下所示: texts = my_text.split("licensed in"

我有一个文本段落
my_text
,其中包含如下行

........ licensed in Bangladesh. We are happy to announce ......................
................................................
我想从中提取“孟加拉国”一词。要决定我是否想要那个词,取决于句子中是否有“licensed in”

当前代码如下所示:

texts = my_text.split("licensed in")
# extract the word before the first dot (.) from texts[1]

在python中,哪种方法更合适?

这是正则表达式的工作:

import re
location = re.search(r"licensed in ([^.]*)", my_text).group(1)
说明:

licensed\in\\匹配“licensed in”
(#在第1组中匹配并捕获:
[^.]*#除点以外的任意字符数。
)#捕获组1结束
怎么样

>>> my_text.split('licensed in ')[1].split('.')[0]
'Bangladesh'

它总是采用孟加拉国许可的格式吗?或者在你想要得到的子字符串之前可以有其他单词吗?它总是采用“许可的格式…”我不明白为什么会有人投票反对这个答案?答案有一个解释,它是明确的,也正是OP所要求的!如果可能的话,向下的投票者被要求评论原因,这有助于用户进一步改进答案。点“.”是否总是出现在搜索词之后?即使下面的字符不是点,提取“Bangladesh”的更好解决方案可能是使用boudary单词:
re.search(r“licensed in(\b\w+\b)”,txt)。组(1)
@Antwane:第一个单词边界是不必要的,并且正则表达式在输入上会不正确地匹配,例如
“斯里兰卡”
(虽然我的在
“U.S.A.”
上的匹配不正确-它会根据要求提取第一个点之前的任何内容。严格来说,该点不是必需的;如果没有点,匹配将一直延续到字符串末尾)。这不是OP说他们已经尝试过的解决方案吗?对不起,是的。但我只是认为OP不想弄乱正则表达式,所以split()是最好的选择。