我正在为Reddit自动主持人创建规则。它从YAML配置文件获取其规则,并将正则表达式解释为Python regex。
我正在尝试使以下正则表达式起作用:
</p><ul><li>(None)</li></ul><h2><span style="font-size:18px;">Authorized Administrators and Users</span></h2><pre><b>Authorized Administrators:</b>
jim (you)
password: (blank/none)
bob
password: Littl3@birD
batman
password: 3ndur4N(e&home
dab
password: captain
<b>Authorized Users:</b>
bag
crab
oliver
james
scott
john
apple
</pre><h2><span style="font-size:18px;">Competition Guidelines</span></h2>
当我在https://pythex.org/上对其进行测试时,它可以完美实现我想要的功能。
不幸的是,当我将相同的正则表达式复制到配置文件中时,表达式末尾的组引用导致错误:
为
(https?://[\\w\\d:#@%/;$()~_?+-=\\.&]+\\.\\w{2,6})([\\S\\s]*\\1)
生成了无效的正则表达式:无法引用未处理的正则表达式 组
我还尝试了此版本,并进行了所有转义,只是为了确保角色没有任何干扰:
body (regex)
但是我仍然遇到相同的错误。有人知道我在做什么错吗?
答案 0 :(得分:0)
我设法通过将组选择更改为\2
而不是\1
来解决了这个问题。
事实证明,YAML或AutoModerator会在整个表达式周围自动加上括号,因此其中的任何组引用必须比您最初期望的多1。
我本来以为这是问题所在,所以尝试了上面说明的修复程序,但是由于AutoModerator代码的另一个问题,该修复程序似乎没有起作用。现在一切都解决了;感谢您的耐心配合和帮助。