正規表現』で読んだことを文章に書き起こすことで、理解を深める。
パターンを指定して、文字列を効率よく検索・置換するためのミニ言語
すると下記のように全てをWindows表記に揃えることができます。
まだ文章が短いから効果がわかりにくいかもしれませんが、もっと長い文章になってくるといちいち手作業で一つ一つ探して修正するのは面倒ですよね。
NFAエンジンは、部分式や要素を順番に見ていき、同等の可能性を持つ2つのオプションの中でどちらかを選ばなければならなくなると、片方を選んだ上で、後で必要になったときにそこに戻れるように、もう片方も覚えておく。
オプションの間で道を選ばなければならない状況としては、量指定子(もう1つ余分にマッチすべきかどうか)と選択(どちらの選択肢を先に試し、どちらの選択肢を後に残すか)が考えられる。
どのコースを選んだとしても、それが成功して正規表現の残りの部分も成功したら、マッチは終了する。しかし、正規表現の残りの部分で不成功が起きると、正規表現エンジンは最初に選択を行ったところまでバックトラックし、別のコースに進んでマッチの試行を継続する。NFAは、こうして正規表現から作られるすべての順列を試してみる(少なくとも、マッチが見つかるまで必要な限り)。
今までなんとなくで使っていたメタ文字、特に量指定子( )を使った場合にどのようにマッチするのかがよくわかった。
他の正規表現の正しい書き方や効率のいい書き方よりも、ここを理解しておかないと、本当に正規表現を理解したとは言えないと思った。
使うのは主にプログラマーですが、個人的には非プログラマーも知っておいた方がいい、知っておいて損はないと思っています。
まずは以下の記事を読んでその便利さを是非体感してみてください。
ちなみに使用するテキストエディタは、OSがWindowsの方にはサクラエディタまたはAtomを、Macの方にはAtomをお勧めします。