teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

補足

2018/09/11 05:40

投稿

otn
otn

スコア86349

answer CHANGED
@@ -18,6 +18,9 @@
18
18
  です。
19
19
  文字列の先頭文字からが、`\d.`にマッチするか?`\d\d.`にマッチするか?`[01]\d\d.`にマッチするか?(中略)`25[0-5].`にマッチするか?の順に調べ、どれもマッチしなければ、
20
20
 
21
- 文字列の文字からが、以下同様。
21
+ 文字列の2文字からが、以下同様。
22
+ 文字列の3文字目からが、以下同様。
23
+ 以下同様。
22
24
 
23
- となります。
25
+ となります。
26
+ 対象文字列が`111.111.111.111`の場合、「文字列の先頭文字からが、`[01]\d\d.`にマッチする」のが最初なので、それが採用されます。

1

追記

2018/09/11 05:40

投稿

otn
otn

スコア86349

answer CHANGED
@@ -8,4 +8,16 @@
8
8
  あと、高度な指定で、マッチが失敗したときの動作を変更する事も出来ます。
9
9
 
10
10
  先頭に`^`が付いておらず末尾に`$`が付いているケースでも、対象文字列の後ろからチェックすると言う事はありません。
11
- 同様に今回は`.`が正規表現末尾に付いていますが、それを先にマッチさせて、前方に遡ってチェックするような事は行いません。あくまで先頭からチェックです。
11
+ 同様に今回は`.`が正規表現末尾に付いていますが、それを先にマッチさせて、前方に遡ってチェックするような事は行いません。あくまで先頭からチェックです。
12
+
13
+ ##追記
14
+ > (\d|\d\d|[01]\d\d|2[0-4]\d|25[0-5]).
15
+
16
+ は、分配法則で括弧を外して書き直すと、
17
+ `\d.|\d\d.|[01]\d\d.|2[0-4]\d.|25[0-5].`
18
+ です。
19
+ 文字列の先頭文字からが、`\d.`にマッチするか?`\d\d.`にマッチするか?`[01]\d\d.`にマッチするか?(中略)`25[0-5].`にマッチするか?の順に調べ、どれもマッチしなければ、
20
+
21
+ 文字列の2文字からが、以下同様。
22
+
23
+ となります。