Python regex error: "cannot refer to an open group"

Python regex error: "cannot refer to an open group"

我正在为 reddit 自动版主创建规则。它从 YAML 配置文件获取规则,正则表达式被解释为 Python 正则表达式。

我正在尝试使以下正则表达式起作用:

(https?://[\w\d:#@%/;$()~_?+-=\.&]+\.\w{2,6})([\S\s]*\1)

当我在 https://pythex.org/ 上测试它时,它完美地实现了我想要的。

不幸的是,当我将相同的正则表达式复制到配置文件中时,表达式末尾的组引用导致错误:

Generated an invalid regex for body (regex): cannot refer to an open group

我也试过这个版本,所有内容都转义了,只是为了确保角色不会以任何方式干扰:

(https?://[\w\d\:\#\@\%\/\;\$\(\)\~\_\?\+\-\=\.&]+\.\w{2,6})([\S\s]*\1)

但我仍然遇到同样的错误。有谁知道我在这里做错了什么?

我设法通过将组选择更改为 </code> 而不是 <code> 来解决问题。

事实证明,YAML 或 AutoModerator 会自动将整个表达式括起来,因此其中的任何组引用都必须比您最初预期的多 1 个。

一开始我以为是这个问题,并尝试了上面解释的修复,但是由于 AutoModerator 代码的一个单独问题,修复似乎没有奏效。现在一切都解决了;感谢您的耐心等待和帮助。