正则表达式匹配一个字符的无限,但只匹配另一个字符的两个



我想捕获一个字符串,其中有一个字符的最长数量,后跟不超过两个另一个字符。 例:

aaaaabbbbbbbb

将捕获:

aaaaabb, bb and b

我试过:

(a*)(b)(?!2{2})

但这只是像这样抓住两个B:

bb
a*b{0,2}

这匹配任意数量的a后跟最多 2b

使用您的输入时,它匹配

aaaaabb
bb
bb
bb

由于{0,2}是贪婪的,它总是匹配成对的b,而不仅仅是一个。它匹配所有剩余的bb,因为它们前面有零a,与a*匹配。

演示

相关内容

最新更新