質問編集履歴
1
\と書くつもりが、/と書いてしまったのと\\が正解かと思ったがphpは\\\でないと\と見てくれないみたいなので修正。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,24 +1,24 @@
|
|
1
|
-
文字列**abc**に対して正規表現**.*
|
1
|
+
文字列**abc**に対して正規表現**.*\**を適用すると…
|
2
2
|
|
3
|
-
文字列:**△▲abc** 正規表現:**▲.*
|
3
|
+
文字列:**△▲abc** 正規表現:**▲.*\**
|
4
|
-
…aが.*にマッチするかどうか調べるが、保存ステートにaが
|
4
|
+
…aが.*にマッチするかどうか調べるが、保存ステートにaが\にマッチするかどうか調べるというバックトラックを保存。aは、.*にマッチするので先に進める。
|
5
5
|
|
6
6
|
<中略…bとcもaと同じような動作をする>
|
7
7
|
|
8
|
-
文字列:**△abc▲** 正規表現:**▲.*
|
8
|
+
文字列:**△abc▲** 正規表現:**▲.*\**
|
9
|
-
…cの後ろの位置(空白文字?)が.*にマッチするか調べるが、保存ステートにcの後ろの位置が
|
9
|
+
…cの後ろの位置(空白文字?)が.*にマッチするか調べるが、保存ステートにcの後ろの位置が\にマッチするか調べるバックトラックを保存。
|
10
10
|
cの後ろの位置は、.*にマッチする。
|
11
11
|
|
12
12
|
ここで質問ですがこのcの後ろの位置が.*にマッチした後の動作がわかりません。
|
13
13
|
恐らく
|
14
14
|
|
15
|
-
文字列:**△abc▲** 正規表現:**.*▲
|
15
|
+
文字列:**△abc▲** 正規表現:**.*▲\**
|
16
|
-
…cの後ろの位置が
|
16
|
+
…cの後ろの位置が\にマッチするか調べるが、マッチしないので先ほどの保存ステートの末尾から実行していく。
|
17
17
|
|
18
18
|
か、
|
19
19
|
|
20
|
-
文字列:**△abc▲** 正規表現:**.*▲
|
20
|
+
文字列:**△abc▲** 正規表現:**.*▲\**
|
21
|
-
…文字列の末尾に来たが、
|
21
|
+
…文字列の末尾に来たが、\にマッチする文字列が無いので保存ステートの末尾から実行していく。
|
22
22
|
|
23
23
|
のどちらかだと思うのですが、どうなのでしょうか。
|
24
24
|
|