3

我需要弄清楚这个正则表达式是什么意思?

"^[A-Z]{3}-[4-7]\d{2,4}\$$"

我认为它以 3 个字母开头,以 2,3 或 4 位数字结尾(也不确定 dubble $-sings)。

但我不明白这是什么意思:

     -[4-7]  

而且我也不确定为什么最后有 2 $...

谢谢

4

5 回答 5

11
  • ^字符串的开头
  • [A-Z]{3}一个字符从 A 到 Z 重复 3 次
  • -性格-
  • [4-7]一个从 4 到 7 的数字
  • \d{2,4}从 0 到 9 的任何数字重复 2 到 4 次
  • \$性格$
  • $字符串的结尾
于 2013-08-19T15:33:43.680 回答
4

正则表达式 101

转到regex101.com并将正则表达式粘贴到那里......它会向您描述它。这将允许您在浏览器中测试您的正则表达式。

给一个人一条鱼,你喂他一天。教人钓鱼,你养他一辈子

正则表达式

/"^[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 "

debuggex提供的可视化(感谢naomik )

正则表达式可视化

于 2013-08-19T15:37:05.830 回答
2

可视化!

正则表达式可视化

此外,这不是正则表达式 (RegExp);那只是一个字符串。

如果你想让它成为一个正则表达式:

var re = new RegExp("^[A-Z]{3}-[4-7]\\d{2,4}\\$$");

要不就

var re = /^[A-Z]{3}-[4-7]\d{2,4}\$$/;
于 2013-08-19T15:44:29.060 回答
0

-[4-7]表示-后跟字符45和之一6的字符7

第一个$被转义 - 所以它$在输入中表示 a,而第二个$没有被转义,所以它表示字符串的结尾。

于 2013-08-19T15:33:43.143 回答
0

-: 这实际上是减号-

[4-7]:单个数字,4、5、6 或 7。

\$只是一个转义$符号,因此它被解释为文本,而不是“字符串结尾”。

于 2013-08-19T15:34:09.210 回答