python-2.7 - 如何检查字符串中的多个特定单词?
问题描述
我正在开发一个基于文本的游戏,并希望程序按用户答案中的顺序搜索多个特定单词。例如,我不想在用户的响应中找到“Take”和“item”这两个词,而无需让用户专门输入“Take item”。
我知道你可以使用
if this in that
检查这个词是否在那个字符串中,但是中间有绒毛的多个词呢?
我现在使用的代码是
if ("word1" and "word2" and "word3) in ans:
但这很长,并且不适用于基于文本的游戏中的每个输入。还有什么作用?
解决方案
基于正则表达式的解决方案可能是使用re.match
:
input = "word1 and word2 and word3"
match = re.match(r'(?=.*\bword1\b)(?=.*\bword2\b)(?=.*\bword3\b).*', input)
if match:
print("MATCH")
使用的正则表达式模式使用肯定的lookaheds,它断言每个单词都出现在字符串中。
推荐阅读
- installation - 仅当用户选择时才使用 Inno Setup 下载文件
- python - 如何通过 Python 使用 Selenium 从标签中提取所有文本
- php - “如何解决问题” number_format 错误
- hibernate - Select distinct with order by 复制到数据库时运行正常,但从应用程序运行时失败
- c# - 如何在 Azure WebApp git 部署上将配置设置传递给 donet build 命令?
- python - 使用cmd在python中安装jsonlib时出错
- java - Elasticsearch GetResponse.getField 抛出 NullPointerException
- python - 在数据框中显示重复值 - >键错误
- mysql - 为什么这个 COUNT in HAVING 没有按预期工作?
- c - 打印字符串时的coredump