我如何编写执行以下操作的正则表达式:
Given: A23+ returns A23+
Given: A 23+ returns 23+
Given: A.rg23- returns A.rg23-
Given: A .rg23- returns .rg23-
这是通过积极的前瞻来实现的,还是[^ ]
能够实现这一目标?
答案 0 :(得分:3)
如果在首都A之后有一个空格,我会忽略A和空间并捕捉其他一切。但是如果A之后没有空格我想在捕获中包含A。
您可以使用匹配重置\K
:
\bA(?: \K)?\S+
\K
重置报告的匹配的起点。最终匹配中不再包含任何先前消费的字符。因此,在这种情况下,如果在A
之后有空格,则\K
会重置匹配的信息,从而允许我们捕获其后的任何内容,即\S+
。
答案 1 :(得分:1)
这是另一种方法。
/(?:A )(\S+)|(A\S+)/g
在regex101.com上制作正确的匹配。