我试图理解以下正则表达式,我理解最初的部分,但我无法弄清楚 {3,19} 在这里做什么:
/[A-Z][A-Za-z0-9\s]{3,19}$/
这就是称为量词的自定义重复操作。
\d{3}
将准确找到三位数字。
[a-c]{1,3}
将发现 a、b 或 c 的任何出现至少一次,但最多 3 次。
\w{0,1}
表示将可选地找到一个单词字符。这与放置问号相同,例如:\w?
(\d\w){1,}
将找到至少一次,但最多无限次的数字后跟单词字符的任意组合。所以它会匹配1k1k2k4k1k5j2j9k4h1k5k
这与加号相同,例如:(\d\w)+
b{0,}\d
可以选择查找b
后跟数字的字母,但也可以匹配b
后跟数字的无限字母。所以它将匹配5
, b5
,甚至bbbbbbb5
。这与星号相同。例如:b*\d
它们是“量词” ——这意味着“匹配先前的模式 3 到 19 次”
当您学习正则表达式时,在一个可以突出匹配项的交互式工具中使用它们真的很有用。我一直很喜欢一个叫做Regex Coach的工具,但它只适用于 Windows。虽然有很多在线工具——例如,在这里玩一下你的正则表达式。
{n,m}
意思是“至少重复前一个元素,n
最多重复m
”,所以这个表达式的
[A-Za-z0-9\s]{3,19}
意思是“匹配 3 到 19 个字母、数字或空格字符”。请注意,默认情况下重复是贪婪的,因此这将尝试匹配该范围内尽可能多的字符(这在这里不起作用,因为行尾锚使得它实际上只有一种可能性匹配)。
您在那里的正则表达式/[A-Z][A-Za-z0-9\s]{3,19}$/
分解为:
[A-Z]
我们正在寻找一个大写字母
其次是
[A-Za-z0-9\s]{3,19}
一系列介于 3 到 19 个字符之间的字母、数字或空格
$
然后是行尾。
正则表达式末尾大括号中的逗号分隔数字是什么意思
它表示具有大括号中指定范围的量词。
花括号类似物与参数一起起作用。我们可以指定单个整数或两个整数作为两个数字之间的范围。
/[A-Z][A-Za-z0-9\s]{3,19}$/
使用在线正则表达式网站,我们可以理解如下: