4

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

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

它在 Kodos 中运行良好,但由于 group(),我也想要匹配的序列。我试过了 :

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

但是 Kodos 中显示“无法引用开放组*”,我不明白为什么它不起作用。

请问你能帮我吗?

编辑:适当的正则表达式是(\b(((1|0)(?!\3))+).

4

1 回答 1

9

我认为问题在于您的第二个代码行中有三个单独的组。它们根据左括号的顺序进行编号。

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

如您所见,组 2 包含对其自身的引用,但在解析时它仍然是打开的。

于 2012-07-16T19:43:02.663 回答