RegEx Lookahead(可选)

时间:2015-04-10 10:26:19

标签: python regex python-3.x

我正在写一个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编写的。

0 个答案:

没有答案