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

sag*_*gar 17 javascript regex

我试图理解后面的正则表达式,我理解了初始部分但不能弄清楚{3,19}在这里做了什么

/[A-Z][A-Za-z0-9\s]{3,19}$/
Run Code Online (Sandbox Code Playgroud)

Sua*_*ere 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后跟数字.所以它会匹配5,b5甚至甚至bbbbbbb5.这与Asterisk相同.例如:b*\d

量词


Pau*_*xon 7

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

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


And*_*ark 5

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