3

この正規表現の意味を理解する必要がありますか?

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

正確に3文字で始まり、2、3、または4桁で終わると思います(二重の$-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) ではありません。それは単なる文字列です。

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]は、文字の後に 、、および-のいずれかが続くことを意味します。4567

1 つ目$はエスケープされているため$、入力で a を示しますが、2 つ目$はエスケープされておらず、文字列の末尾を示しています。

于 2013-08-19T15:33:43.143 に答える
0

-: これは文字通りマイナス-文字です。

[4-7]: 4、5、6、または 7 のいずれかの 1 桁の数字。

\$は単なるエスケープ$記号であるため、「文字列の終わり」としてではなく、テキストとして解釈されます。

于 2013-08-19T15:34:09.210 に答える