正则表达式末尾的花括号中用逗号分隔的数字是什么意思

时间:2013-06-10 21:09:31

标签: javascript regex

我试图理解以下正则表达式,我理解了初始部分但却无法弄清楚{3,19}在这里做了什么

/[A-Z][A-Za-z0-9\s]{3,19}$/

6 个答案:

答案 0 :(得分:18)

这就是称为量词的自定义重复操作。

\d{3}会找到正好三位数。

[a-c]{1,3}会发现a,b或c至少出现一次,但最多会出现三次。

\w{0,1}表示可以选择找到单词字符。这与放置问号相同,例如:\w?

(\d\w){1,}会找到数字后跟单词字符的任意组合至少一次,但最多可无限次。所以它匹配1k1k2k4k1k5j2j9k4h1k5k这与Plus符号相同,例如:(\d\w)+

b{0,}\d可选择找到后跟数字的字母b,但也可以匹配无数字母b后跟数字。因此它会匹配5b5甚至bbbbbbb5。这与Asterisk相同。例如:b*\d

Quantifiers

答案 1 :(得分:7)

它们是'quantifiers' - 它意味着'匹配先前的模式3到19次'

当你学习正则表达式时,真的很有必要在一个可以突出显示匹配的交互式工具中使用它们。我一直很喜欢名为Regex Coach的工具,但它只是Windows。但是有很多在线工具 - 可以使用你的正则表达式here, for example

答案 2 :(得分:5)

{n,m}表示“至少n次”重复上一个元素,最多m次“,所以表达式为 [A-Za-z0-9\s]{3,19}表示“匹配字母,数字或空格的3到19个字符”。请注意,默认情况下重复是贪婪的,所以这将尝试在该范围内匹配尽可能多的字符(这不会在这里发挥作用,因为行结束锚定使得它们实际上只有一种可能性匹配)。

答案 3 :(得分:3)

你在那里的正则表达式/[A-Z][A-Za-z0-9\s]{3,19}$/分解为:

[A-Z]我们正在寻找大写字母

其次是

[A-Za-z0-9\s]{3,19}一系列字母,数字或空格,介于3到19个字符之间

$然后是行尾。

答案 4 :(得分:1)

它必须与[A-Za-z0-9 \ s]匹配3到19次。

这是一个很好的正则表达式参考指南:

http://www.regular-expressions.info/reference.html

答案 5 :(得分:0)

  

在正则表达式末尾的花括号中用逗号分隔数字意味着什么

它表示具有花括号中指定范围的量词。

花括号类似物用于参数。我们可以指定单个整数或两个整数作为两个数字之间的范围。

/[A-Z][A-Za-z0-9\s]{3,19}$/

使用在线正则表达式网站,我们可以理解如下:

enter image description here