我需要弄清楚这个正则表达式意味着什么?
"^[A-Z]{3}-[4-7]\d{2,4}\$$"
我认为它以3个字母开头,以2,3或4位数字结尾(也不确定dubble $ -sings)。
但我无法理解这意味着什么:
-[4-7]
而且我也不确定为什么最后会有2美元......
感谢
答案 0 :(得分:11)
^
字符串的开头[A-Z]{3}
从A到Z的角色重复3次-
字符-
[4-7]
一个4到7位的数字\d{2,4}
从0到9的任何数字重复2到4次\$
字符$
$
字符串的结尾答案 1 :(得分:4)
转到regex101.com并将正则表达式粘贴到那里......它会向您描述。这样您还可以在浏览器中测试正则表达式。
给一个男人一条鱼,你喂他一天。教一个人钓鱼,你养了一辈子
<强> REGEX 强>
/"^[A-Z]{3}-[4-7]\d{2,4}\$$"/
<强> 描述 强>
" Literal "
^ Start of string
Char class [A-Z] 3 times [greedy] matches:
A-Z A character range between Literal A and Literal Z
- Literal -
Char class [4-7] matches:
4-7 A character range between Literal 4 and Literal 7
\d 2 to 4 times [greedy] Digit [0-9]
\$ Literal $
$ End of string
" Literal "
答案 2 :(得分:2)
可视化!
此外,这不是正则表达式(RegExp);那只是一个字符串。
如果你想让它成为RegExp:
var re = new RegExp("^[A-Z]{3}-[4-7]\\d{2,4}\\$$");
或者只是
var re = /^[A-Z]{3}-[4-7]\d{2,4}\$$/;
答案 3 :(得分:0)
-[4-7]
表示字符-
后跟其中一个字符4
,5
,6
和7
。
第一个$
被转义 - 因此它在输入中指示$
,而第二个$
未转义,因此它表示字符串的结尾。
答案 4 :(得分:0)
-
:这实际上是减去-
字符。
[4-7]
:一个数字,4,5,6或7。
\$
只是一个转义的$
符号,因此它被解释为文本,而不是“字符串结尾”。