匹配字符串Python

时间:2013-09-06 06:41:30

标签: python

所以基本上我想要一个程序,只有当用户输入类似“我生病”或“我太酷”的内容时才会起作用,但是如果他们输入“pi am cool”这样的拼写错误就行不通。

这是我到目前为止所拥有的:

text = input("text here: ") 
if re.search("i am", text) is not None:
   print("correct")

所以基本上,我只是需要帮助,如果有人输入“Pi am cool”,现在它会认为这是正确的。但是我不想那样,我想要它,所以它必须完全“我很酷”然而。因为我正在为一个学校项目创建一个机器人,所以我需要它,所以句子可能是“男人,我很酷”它会把它拿起并打印回来正确,但是如果它被打字“男人,TI很酷“有一个错字,我不希望它打印正确。

1 个答案:

答案 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: