在文本中找到匹配项后打印上一个单词



所以我需要一种方法让python找到一个字符串的匹配项,然后找到前一个单词。例如:

如果我搜索"abc":

123 xyz abc def

我得到:

xyz abc

我搜索的全文是一个请求-响应,如果这有助于/改变任何事情的话。

我试着写一些东西来选择前一行,但从来没有发生过。我删除了代码(这是我不应该做的(,因为它不起作用。

您也可以使用一个简单的列表理解:

string = input('Enter string to be searched:').split(' ')
search = input('Enter characters to be searched for in string:')
output = ''.join([string[i-1] + ' ' + string[i] for i in range(len(string)) if string[i] == search])
if len(output) == 0:
print('No matches found')
else:
print('Match found: ' + output)

输出:

Enter string to be searched: 123 xyz abc def
Enter characters to be searched for in string: abc
Match found: xyz abc

获取单词列表(假设它们用空格分隔(:

s = "123 xyz abc def"
words = s.split()

压缩这个列表,使其向前移动一个位置,并构建一个字典,其中下一个单词是关键字,前一个单词是值:

word_dict = dict(zip(words[1:], words))
# {'xyz': '123', 'abc': 'xyz', 'def': 'abc'}

在字典里查这个词:

word_dict['abc']
#'xyz'

限制:如果字符串中有多个感兴趣的单词实例,则解决方案不起作用。

最新更新