Kodos& “不能指开放组”

时间:2012-07-16 19:22:10

标签: python regex regex-group

我想只匹配1010或0101,但也不匹配1111或0000。 我使用以下正则表达式:

\b((1|0)(?!\2))+

它在Kodos中运行良好但我也希望匹配的序列归功于group()。 我试过了:

\b(((1|0)(?!\2))+)

但Kodos中显示“不能参考开放组*” 我不明白为什么它不起作用。

请你能帮帮我吗?

编辑:相应的正则表达式为(\b(((1|0)(?!\3))+)

1 个答案:

答案 0 :(得分:9)

我认为问题是你的第二个代码行中有三个独立的组。它们根据开口的排序进行编号。

Group 1: ((1|0)(?!\2))+
Group 2: (1|0)(?!\2)
Group 3: 1|0

正如您所看到的,第2组包含对自身的引用,但在解析时它仍处于打开状态。