首页 > 解决方案 > 如何检查字符串中的多个特定单词?

问题描述

我正在开发一个基于文本的游戏,并希望程序按用户答案中的顺序搜索多个特定单词。例如,我不想在用户的响应中找到“Take”和“item”这两个词,而无需让用户专门输入“Take item”。

我知道你可以使用

    if this in that

检查这个词是否在那个字符串中,但是中间有绒毛的多个词呢?

我现在使用的代码是

if ("word1" and "word2" and "word3) in ans:

但这很长,并且不适用于基于文本的游戏中的每个输入。还有什么作用?

标签: python-2.7

解决方案


基于正则表达式的解决方案可能是使用re.match

input = "word1 and word2 and word3"
match = re.match(r'(?=.*\bword1\b)(?=.*\bword2\b)(?=.*\bword3\b).*', input)
if match:
    print("MATCH")

使用的正则表达式模式使用肯定的lookaheds,它断言每个单词都出现在字符串中。


推荐阅读