我在discord.py中创建了一个类似于“爸爸笑话”的机器人,并使用RegEx查找所有“触发器”来启动爸爸笑话。以下是我目前的代码:
string = message.content.lower()
pattern = ' im | i\'m | i am '
result = re.split(pattern, string, 1)
if len(result) == 2:
if "botpuns" in result[1]:
await message.channel.send(f"No {message.author.mention}, I'm Botpuns!!")
else:
await message.channel.send(f"Hi {result[1]}, I'm Botpuns!!")
await bot.process_commands(message)
return
现在它能工作,但不完全是我想要的。每当有人说“我饿了”这样的话时,它就起作用,但当有人说“他”这样的话时,它也起作用,因为这也符合标准。我不想让它直接检查它背后是否没有任何东西,因为这样在消息的开头就不起作用,但我想知道是否有一种方法可以检查它是否在一个词的结尾。谢谢
如果我从评论中正确理解,您想要的是:
^(.*[\s])?(im|i am|i\'m)[\s](.*)$
(.*[\s])?
-组0(可选):任意数量的字符和单个空格(im|i am|i\'m)[\s]
-group1:im、i-am或i-am标记在这里,后跟一个空格(.*)
-第2组:任意数量的字符李>相关问题 更多 >
编程相关推荐