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