我想在Python中查找一个单词的出现,并打印该单词后面的单词。这些单词以空格分隔。
例如: 如果文件中出现“sample”“thisword”的单词,则希望获取“thisword”。我需要一个正则表达式,因为“thisword”不断变化。
例如: 如果文件中出现“sample”“thisword”的单词,则希望获取“thisword”。我需要一个正则表达式,因为“thisword”不断变化。
Python字符串有一个内置的split方法,它将字符串拆分为由空白字符(文档)分隔的单词列表,它具有控制拆分方式的参数,您可以在列表中搜索所需单词并返回下一个索引。
your_string = "This is a string"
list_of_words = your_string.split()
next_word = list_of_words[list_of_words.index(your_search_word) + 1]
>>> s = "This is a sentence"
>>> sl = s.split()
>>>
>>> def nextword(target, source):
... for i, w in enumerate(source):
... if w == target:
... return source[i+1]
...
>>> nextword('is', sl)
'a'
>>> nextword('a', sl)
'sentence'
>>>
当然,你需要进行一些错误检查(例如,避免“掉到”末尾)和可能的while循环,以便获取目标的所有实例。但这应该可以让你开始了。
s = "this is a sentense"
target = "is"
words = s.split()
for i,w in enumerate(words):
if w == target:
# next word
print words[i+1]
# previous word
if i>0:
print words[i-1]