-1
'^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

Can someone break down how all the parts work? Especially what does |1[0-9]{2} do

4

3 に答える 3

6

(IPv4) IP アドレスは、ドット付きクワッド、つまり 0 から 255 までの 4 つの数字です。

.この正規表現が言っているのは、「文字で区切られた、0 から 255 までの 4 つの数字に一致する」ということです。

正規表現の|文字は「または」として読み取ることができるため、各エントリは次のようになります。

 (
  [0-9]          # a number between 0 and 9
  |[1-9][0-9]    # or, a number between 10 and 99
  |1[0-9]{2}     # or, a number between 100 and 199
  |2[0-4][0-9]   # or, a number between 200 and 249
  |25[0-5]       # or, a number between 250 and 255
 )
 \.)             # followed by a dot
 {3}             # three times
 ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) # followed by the same match, not followed by a dot

0.0.0.0したがって、これはとの間の255.255.255.255すべて、つまり有効な IPv4 アドレスに一致します。

少し検索すると、正規表現を説明するオンライン ツールがあります: http://www.myregextester.com/index.php。上部に正規表現を入力し、EXPLAINボックスをオンにして、[送信] をクリックします。

于 2013-10-17T23:11:16.507 に答える