正则表达式中的负向lookbehind,后跟可选空格

时间:2017-03-29 15:53:34

标签: regex grep negative-lookbehind

我试图编写一个与B匹配的正则表达式,当它没有前面的A时 - 无论是否存在插入的空格。

所以,我尝试了这种消极的外观,并在regex101.com中进行了测试:

(?<!A)\s*B

这会导致&#34; AB&#34;不配,这很好,但是&#34; A B&#34;会导致匹配,这不是我想要的。

我不确定为什么会这样。它与\ s *匹配空字符串&#34;&#34;这一事实有关,你可以说,A和B之间存在无效的\ s *匹配。但为什么呢?这会影响&#34; A B&#34;但不是&#34; AB&#34;?

以下正则表达式是否是正确的解决方案,如果是这样,为什么它确实解决了这个问题?

(?<![A\s])\s*B

请注意,我正在寻找的可变长度的东西是匹配的一部分,而不是负面外观本身的一部分 - 因此不是另一个问题的重复

0 个答案:

没有答案