0

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

4

3 回答 3

4

对于 的最小值m和最大值n,您使用{m,n}. 如果mn相同,只需使用{m}.

例如,仅由三到四个字母后跟两个数字和六到十二个字母数字组成的行将是:

^[A-Za-z]{3,4}[0-9]{2}[A-Za-z0-9]{6,12}$

如果您希望在高端无限制重复(没有最大数量),只需省略n. 对于低端的无限重复,有些实现不支持省略 the,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,}'
于 2009-10-25T05:00:55.257 回答
2

模式后包括 {min,max}

于 2009-10-25T05:06:26.663 回答
1

您可以在此处找到有关 Regex 中重复的教程(以及许多其他内容)

于 2009-10-25T05:02:05.860 回答