我想要一个与以下模式匹配的正则表达式:
b
abc
aabcc
aaabccc
Run Code Online (Sandbox Code Playgroud)
但不匹配任何:
ab
bc
aabc
abcc
Run Code Online (Sandbox Code Playgroud)
基本上,组1匹配的次数/(a)*b(c){_Q_}/
在哪里_Q_
.我知道如何在字符串中稍后匹配第1组内容,但如何匹配第1组计数?
使用这个递归正则表达式:
^(a(?:(?1)|b)c)$|^(b)$
Run Code Online (Sandbox Code Playgroud)
正则表达式可以进一步简化为:
^(a(?1)c|b)$
Run Code Online (Sandbox Code Playgroud)
交替包括:
b
a(?1)c
匹配的递归情况a
,然后递归到组1,然后匹配c
.第1组是交替本身,因此它可以包含更多对a
和c
,或者在基本情况下的递归结束b
.