如何定义某个模式应重复的最小和最大(可能无限制)次数?我知道有?
和*
,我可以通过重复一定次数来构建模式,但我知道使用{}
有一个特殊的符号,我可以不记得是怎么回事。
答案 0 :(得分:4)
至少m
,最多n
,您使用{m,n}
。如果m
和n
相同,请使用{m}
。
例如,一行只包含三到四个alphas,然后是两个数字,然后是六到十二个字母数字:
^[A-Za-z]{3,4}[0-9]{2}[A-Za-z0-9]{6,12}$
如果您希望高端无限重复(没有最大数量),请忽略n
。对于低端的无限重复,有些实现不支持省略m
,因此您可能只想指定0以保证安全。换句话说,
[a-z]{6,}[0-9]{0,4}
表示六个或更多小写字母,后跟零到四个数字。
您的特殊情况只是其中的一个版本,如:
'[a-z]?' is identical to '[a-z]{0,1}'
'[a-z]*' '[a-z]{0,}'
'[a-z]+' '[a-z]{1,}'
答案 1 :(得分:2)
模式包括{min,max}
之后答案 2 :(得分:1)
你可以在Regex中找到关于重复的教程(以及其他一些东西)here