正規表現の基本要素

せっかくの正規表現ライブラリです。SkRegExp も使ってもらわなければ私も面白くないので、正規表現の入門なんて書いてみます。

ぜひ、SkRegExp をインストールし、試しながら読んでください。

正規表現をカンタンに試せるプログラムも作りました。ダウンロードして、実際に動かしながら SkRegExp と正規表現を楽しんでください。

正規表現は文字列ではなく、文字パターンにマッチします。

文字パターンにマッチさせるため、一部の文字はパターンを表現するために使われます。これをメタ文字と言います。

基本的なメタ文字を以下に示します。

|

縦棒は選択肢を表します。
たとえば、”です|である”という正規表現は、”です”と”である”にマッチします。

?

クエスチョンマークは、直前の正規表現がないか、あるいは1個あるときにマッチします。
たとえば、”新人類?”という正規表現は、”新人”と”新人類”にマッチします。
もう少し詳しく説明すると、”新人類?”で、?の直前の正規表現は”類”です。つまり、”類”はあってもなくてもいいのです。
したがって、この正規表現は、”新人”と言う文字の後に”類”が付いていてもいなくてもマッチします。

*

アスタリスクは、直前の正規表現がゼロ個以上あるときにマッチします。
たとえば、”あい*ん”という正規表現は、”あん”、”あいん”、”あいいん”、”あいいいん”などにマッチします。
“あん”にもマッチすることがポイントです。アスタリスクは、直前の正規表現がゼロ個以上あるときにマッチします。したがって、”あん”のように、間に「い」がなくてもマッチします。

()

括弧は、正規表現の優先順位を変更します。
たとえば、”新人類?”という正規表現を、”新(人類)?”に変更すると、”新”と”新人類”にマッチします。クエスチョンマークの対象が括弧でくくられた”人類”に変わったためマッチする文字列も変わったのです。

以上が正規表現の基本構文です。これだけでは、大した使い道がなさそうに思いませんか?

正直、私も最初はそう思いました。

たとえば、日本語で何個も同じ文字が続くなんてありません。だから、アスタリスクなんか何に使うんだよと思いました。

ところが、次のような正規表現で威力を発揮します。
(.*)

まだ説明してないメタ文字がありますが、この正規表現は括弧でくくられた文字列を検索できます。

ぜひ、SkRegExpで入力して試してみてください。

詳しくは次回説明します。

コメントを残す

メールアドレスが公開されることはありません。