在字符串中搜索单词/句子并打印以下单词

时间:2019-05-08 17:27:41

标签: python python-3.x

我有一个包含大约10行文本的字符串。我想做的是找到一个包含特定单词的句子,然后显示以下单词。

示例字符串:

  

棕色狐狸

     

慢驴

     

流口水狗

     

毛茸茸的猫

我希望脚本搜索'the slow',然后打印以下单词,在这种情况下为'donkey'。

我尝试使用“查找”功能,但这只是打印单词的位置。

示例代码:

 sSearch = output.find("destination-pattern")
        print(sSearch)

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

output = "The slow donkey brown fox"
patt = "The slow"
sSearch = output.find(patt)
print(output[sSearch+len(patt)+1:].split(' ')[0])

输出:

donkey

答案 1 :(得分:0)

您可以使用正则表达式。 Python内置了一个名为re的库。

用法示例:

s = "The slow donkey some more text"
finder = "The slow"
idx_finder_end = s.find(finder) + len(finder)
next_word_match = re.match(r"\s\w*\s", s[idx_finder_end:])
next_word = next_word_match.group().strip()
# donkey

答案 2 :(得分:0)

我将按照以下方式使用正则表达式(re模块)来实现它:

import re
txt = '''The quick brown fox
The slow donkey
The slobbery dog
The Furry Cat'''
words = re.findall(r'(?<=The slow) (\w*)',txt)
print(words) # prints ['donkey']

请注意,words现在是单词的list,如果您确定只找到一个单词,则可以这样做:

word = words[0]
print(word) # prints donkey

说明:我在re.findall的第一个参数中使用了所谓的 lookbehind断言,这意味着我正在寻找The slow之后的东西。 \w*表示由以下组成的任何子字符串:字母,数字,下划线(_)。我将它放在组(方括号)中,因为它不是单词的一部分。

答案 3 :(得分:0)

您可以使用正则表达式来做到这一点:

>>> import re
>>> r=re.compile(r'The slow\s+\b(\w+)\b')
>>> r.match('The slow donkey')[1]
'donkey'
>>>