所以基本上我想要一个程序,只有当用户输入类似“我生病”或“我太酷”的内容时才会起作用,但是如果他们输入“pi am cool”这样的拼写错误就行不通。
这是我到目前为止所拥有的:
text = input("text here: ")
if re.search("i am", text) is not None:
print("correct")
所以基本上,我只是需要帮助,如果有人输入“Pi am cool”,现在它会认为这是正确的。但是我不想那样,我想要它,所以它必须完全“我很酷”然而。因为我正在为一个学校项目创建一个机器人,所以我需要它,所以句子可能是“男人,我很酷”它会把它拿起并打印回来正确,但是如果它被打字“男人,TI很酷“有一个错字,我不希望它打印正确。
答案 0 :(得分:2)
使用\b
字边界锚:
if re.search(r"\bi am\b", text) is not None:
\b
匹配文本中从非单词字符到单词字符的点,反之亦然,因此空格后跟一个字母或一个字母后跟一个单词。
由于常规 python字符串中的\b
被解释为退格符,因此您需要使用原始字符串文字(r'...'
)或转义反斜杠({ {1}})。
您可能还想在搜索中添加"\\bi am\\b"
标记,以查找小写和大写文字:
re.IGNORE
演示:
if re.search(r"\bi am\b", text, re.IGNORE) is not None: