文字列abcに対して正規表現**.***を適用すると…
文字列:△▲abc 正規表現:**▲.*
…aが.*にマッチするかどうか調べるが、保存ステートにaが\にマッチするかどうか調べるというバックトラックを保存。aは、.*にマッチするので先に進める。
<中略…bとcもaと同じような動作をする>
文字列:△abc▲ 正規表現:**▲.*
…cの後ろの位置(空白文字?)が.*にマッチするか調べるが、保存ステートにcの後ろの位置が\にマッチするか調べるバックトラックを保存。
cの後ろの位置は、.*にマッチする。
ここで質問ですがこのcの後ろの位置が.*にマッチした後の動作がわかりません。
恐らく
文字列:△abc▲ 正規表現:**.▲*
…cの後ろの位置が\にマッチするか調べるが、マッチしないので先ほどの保存ステートの末尾から実行していく。
か、
文字列:△abc▲ 正規表現:**.▲*
…文字列の末尾に来たが、\にマッチする文字列が無いので保存ステートの末尾から実行していく。
のどちらかだと思うのですが、どうなのでしょうか。
またこのあとの動作についても、バックトラックもマッチしないので△を一つ進め上記の動作を繰り返し、最終的にマッチしないということであっておりますか。
※△がマッチした箇所の開始位置で、▲が正規表現を適用するときの現在の位置とします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/29 09:33
2017/11/29 09:56
2017/11/29 10:25
2017/11/29 11:15
2017/12/04 10:27
2017/12/04 14:51 編集
2017/12/05 10:28
2017/12/16 07:46