匹配字符串Python

匹配字符串Python,python,Python,因此,基本上我想要一个程序,它只在用户键入“我生病了”或“我太酷了”之类的内容时才起作用,但如果用户键入“我太酷了”之类的输入,它就不起作用 以下是我目前掌握的情况: text = input("text here: ") if re.search("i am", text) is not None: print("correct") 所以基本上,我只是需要帮助,如果有人现在输入“PiAmCool”,它会认为这是正确的。然而,我不想这样,我想这样,它必须是准确的“我很酷”然而。因为我正

因此,基本上我想要一个程序,它只在用户键入“我生病了”或“我太酷了”之类的内容时才起作用,但如果用户键入“我太酷了”之类的输入,它就不起作用

以下是我目前掌握的情况:

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

所以基本上,我只是需要帮助,如果有人现在输入“PiAmCool”,它会认为这是正确的。然而,我不想这样,我想这样,它必须是准确的“我很酷”然而。因为我正在为一个学校项目创建一个人工智能机器人,所以我需要它,这样句子就可以是“男人,我很酷”,它会把它捡起来并正确地打印出来,但是如果它键入了“男人,我很酷”并带有打字错误,我不希望它打印出来正确。

使用
\b
单词边界锚:

if re.search(r"\bi am\b", text) is not None:
\b
匹配文本中从非单词字符到单词字符的点,反之亦然,因此空格后跟字母,或字母后跟单词

由于常规python字符串中的
\b
被解释为退格字符,因此需要使用原始字符串文本(
r'…'
)或转义反斜杠(
“\\bi am\\b”

您可能还希望在搜索中添加
re.IGNORE
标志,以查找大写和小写文本:

if re.search(r"\bi am\b", text, re.IGNORE) is not None:
演示:


你能提出更具体的要求吗?您已经给出了一些您的代码应该接受或不应该接受的输入,但是如果我们有一个关于应该接受什么的实际描述,而不仅仅是示例,那么回答起来会更容易。
>>> re.search(r"\bi am\b", 'I am so cool!', re.I).group()
'I am'
>>> re.search(r"\bi am\b", 'WII am so cool!', re.I) is None
True
>>> re.search(r"\bi am\b", 'I ammity so cool!', re.I) is None
True