负向超前行为

时间:2019-03-27 18:35:08

标签: regex

我有一个让regexp识别“正确”代码的任务:

010101
0101010
1111111
000000

这是“不正确”代码的示例:

0110
001
11101
01

我写了regexp:

^(?:([01])(?!\1))+$|^([01])\2*$

它有效..但我不明白为什么:)我不明白这一部分:

(?:([01])(?!\1))+

如果此([01])是“第一捕获组”,则此(?!\1)not what we get in first capturing in 1-st capturing group。但是,为什么它不认识这一点(这是正确的行为,但是为什么呢?):

012

?我的意思是,2不是0,这就是我对(?!\1)的期望

0 个答案:

没有答案