我试图编写一个与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
请注意,我正在寻找的可变长度的东西是匹配的一部分,而不是负面外观本身的一部分 - 因此不是另一个问题的重复。