在Regex中指定glob大小范围

时间:2009-10-25 04:56:16

标签: regex string glob

如何定义某个模式应重复的最小和最大(可能无限制)次数?我知道有?*,我可以通过重复一定次数来构建模式,但我知道使用{}有一个特殊的符号,我可以不记得是怎么回事。

3 个答案:

答案 0 :(得分:4)

至少m,最多n,您使用{m,n}。如果mn相同,请使用{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