我写了一个正则表达式,所以当用户在聊天“Kosovo”中写道时,我的机器人会向他发送音频和文本。
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
答案 0 :(得分:-1)
这不完全正确。通过在每个字符后面指定'+',你可以匹配像kkooosoovvvvvvo这样的东西: - )
相反,你应该使用你想要的确切字符串:
regex="(kosovo)"
我还建议包括案例变体
regex="(kosovo|Kosovo|KOSOVO)"
或仅使用IGNORECASE,以便涵盖每个变体。