正規表現

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

工学 > 情報技術 > プログラミング > 正規表現

Wikipedia
ウィキペディア正規表現の記事があります。

正規表現 (regular expression) とは文字列の集合を表現するための形式言語。非形式的に言うならば、特定のパターンに一致する文字列を抽出したり、検索したりするのに用いられる。

概要[編集]

正規表現はさまざまなソフトウェアやプログラミング言語で実装されている。

このほかにgrepなどのUNIXコマンドラインプログラム、sed、awkなどのスクリプト言語、Emacsやvi、そしてedなどのテキストエディタも正規表現をサポートしている。

学習書を探すなら[編集]

一番手っ取り早いのはまず先に、自身が扱っているプログラミング言語についての本で、正規表現について解説されている本を探すことである。そのような本が存在しない場合は、大体の正規表現の方言の派生元である、Perlの本を読んでも、派生元であるため、そのまま扱えることが多い。

文法[編集]

ここでは特定のプログラミング言語やソフトウェアによらない基本的な正規表現の文法を大まかに解説し、個々の文法や具体的なパターンマッチの方法については別に扱う。

正規表現のメタ文字の一覧
メタ文字 解説
. 任意の1文字にマッチする。たとえば .ook という正規表現は "book" や "cook" などにマッチする。文脈によっては改行文字にマッチする場合もある。
+ 直前の文字の1文字以上の繰り返し。たとえば Goo+gle という正規表現は "Google" や "Gooogle"、"Goooooooogle" などにマッチするが、"Gogle" にはマッチしない。
* 直前の文字の0文字以上の繰り返し。たとえば .* という正規表現は任意の1文字の0文字以上の繰り返しなので、すべての文字列にマッチする。
? 直前の文字の0回または1回の繰り返し。直前の文字があってもなくてもマッチすることを意味する。たとえば s?he は "she" と "he" にマッチする。
[] ブラケットの中の任意の1文字にマッチする。たとえば [bcl]ook は "book" と "cook" と "look" にマッチする。
() 正規表現をグループ化する。括弧の中の文字列を1つのかたまりとして扱う。たとえば Wiki(books)? は "Wiki" または "Wikibooks" にマッチする。

関連書籍[編集]

このページ「正規表現」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。