如果用户使用正则表达式,如何在控制台上打印?

2024-10-03 23:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经写了一个正则表达式,所以当用户在聊天室“科索沃”写,我的机器人会给他发送一个音频和文本

    regex = "k+o+s+o+v+o"
try:
            nick = update.message.from_user.username
            if re.search(regex, contLower):
                    chatid = update.message.chat.id
                    audio1 = "/Users/rikardo/Documents/ANGELO/Programmare/Prove di basi/Mat/SUONI/KosovoBello.ogg"
                    update.message.reply_audio(audio=open(audio1, "rb"))
                    update.message.reply_text("Stay tuned, @PadriFibra")
                    return
except Exception as err:
    print(err)

return

然后我补充说:

print(strftime("%H:%M:%S -")," "+(nick)+" triggered KosovoBello")

结果是:

    regex = "k+o+s+o+v+o"
try:
            nick = update.message.from_user.username
            if re.search(regex, contLower):
                    chatid = update.message.chat.id
                    audio1 = "/Users/rikardo/Documents/ANGELO/Programmare/Prove di basi/Mat/SUONI/KosovoBello.ogg"
                    update.message.reply_audio(audio=open(audio1, "rb"))
                    update.message.reply_text("Stay tuned, @PadriFibra")
                    print(strftime("%H:%M:%S -")," "+(nick)+" triggered KosovoBello")
                    return
except Exception as err:
    print(err)

return

但当我尝试启动机器人时,控制台会这样说:

    $ python3 /Users/rikardo/Documents/ANGELO/Programmare/Prove\ di\ basi/Mat/prova.py 
  File "/Users/rikardo/Documents/ANGELO/Programmare/Prove di basi/Mat/prova.py", line 107
    regex = "k+o+s+o+v+o"
        ^
SyntaxError: invalid syntax

Tags: messageupdateusersnickdocumentsregexmatdi
1条回答
网友
1楼 · 发布于 2024-10-03 23:26:13

这并不完全正确。通过在每个字符后指定“+”,可以匹配kkooosoovvvvo:-)

相反,您应该使用您想要的字符串:

regex="(kosovo)"

我还建议包括病例变异

regex="(kosovo|Kosovo|KOSOVO)"

或者只是使用IGNORECASE来覆盖所有的变化

相关问题 更多 >