我正在写一个Reddit机器人,只要评论与模式匹配,他就会回复。目前他的反应有点过分,我希望通过使模式更精确来减少它。
(\n|^)define:? (-ignore|"?([^\n,.!?#&_:;"\\(){}<>[\]]+))(, ?((pro)?noun|(ad)?verb(-(in)?transitive)?|adjective|abbreviation|(preposi|conjunc|interjec)tion))?
这就是模式。机器人匹配以下内容:
define[:] ["]word/phrase["][, part of speech]
但不是每个人都知道机器人,并会输入类似的东西
"define this because that"
并且模式匹配所有模式。当我将以下内容添加到第4个捕获组的末尾时,它只会匹配其中包含"and"
,"please"
或"because"
字样的字符串。
(?= (and|please|because))
但是在RegExr进行测试时,我发现添加可选项会导致"define this because that"
之类的字符串与第4个捕获组中的所有字符串匹配。
如果这些单词在字符串中,我怎样才能使这个加法成为可选项?
如果它有任何区别,机器人是用python编写的。