gpt4 book ai didi

python - 尝试创建一个正则表达式来忽略属于一组字符的字符以及一组字符后面的单词

转载 作者:行者123 更新时间:2023-12-01 07:15:41 26 4
gpt4 key购买 nike

我是正则表达式的新手,正在尝试在不和谐中创建一个“Dadbot”,它使用正则表达式以“嗨,____我是爸爸”来响应#text-channel中的消息。我遇到的问题是它包含“im”作为可接受的正则表达式。这本身并不坏。然而,当使用“him”一词时,im 被接受为“him”。我希望能够修复这个正则表达式,以便:- 它写着“我是”(及其变体)- 包括 I'm 之后的接下来 3 个单词或直到达到句号。

我不确定我写的是否正确。我使用 regex101.com 检查我的正则表达式,我原来的正则表达式是这个怪物:“(Im|Im|I am|im|i am|i'm)\s+([a-zA-z]+ )”,我使用组来捕获第二组。

我尝试过的事情

"(I'm|Im|I am|im|i am|i'm)\s+([a-zA-z]+)"
"\bi'?m\s+(\w+)\b"
"/\bi'?m\s+(\w+)\b/gi"

这是获取第二组的代码部分

        if dadCheck.search(message.content):
match = dadCheck.search(message.content).group(2)
await channel.send("Hi, " + match + ". I'm Dad. ;D")

这些是接受消息后的预期结果:

  1. 大家好。我叫布拉德,我是一个很酷的人。

  2. 嗨,“一个很酷的家伙”。我是爸爸!

最佳答案

/(im|i am|i'm)\s(\w*\s?){1,3}/i

正则表达式非常棒,绝对可以满足您的用例。上面的正则表达式查找 I'm 标签,然后抓取捕获组中接下来的 1-3 个单词以及空格供您引用。与它一起使用的字符串

I'm a cool guy.

Im a cool guy.

i am a cool guy.

i'm a cool guy.

im a cool guy.

im a cool guy and I like to watch football games with friends

关于python - 尝试创建一个正则表达式来忽略属于一组字符的字符以及一组字符后面的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57981595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com