こんなツール,使っています 
正規表現

toolbox

こんなツール

使っています

正規表現

工学院大学 山口実靖 Saneyasu Yamaguchi

1

正規表現の勉強

正規表現の使い方について解説する.レベルは初級から中級程度であり,本稿を熟読すればピンからキリまでのIT エンジニア界で「並み以上」のエンジニアになれるだろう.知識のない後輩があなたが正規表現を使う姿を見たら,魔法を使っているように映るかもしれない.頑張って勉強してほしい.

本稿では,BRE(Basic Regular Expression)やERE(Extended Regular Expression)と呼ばれる入門的な機能,PCRE(Perl Compatible Regular Expressions)と呼ばれる拡張機能の一部,後方参照先読み後読み再帰を解説する.1 個目(BRE, ERE)を理解すれば,正規表現の基礎は修得である.しかし,せっかく本稿を手に取ったので5 個目(先読み後読み)までは理解してほしい.応用の幅はぐっと広がる.つまり,初級者の方にも1.6.14.は読んで頂きたい.中級者以上の方は頑張って7.10.12., 13.に挑んでもらいたい.

2

正規表現とは

正規表現(regular expression)は,文字列の表現方法であり,テキスト処理アプリケーション(エディタなど)やプログラムで,文字列の検索などに使用される.

表現能力は高いが,直感的でない表現や方言も多い.特に拡張された正規表現の見た目の悪さと暗記のしづらさにはひどいものがある.

正規表現の標準化団体はないが,有名な仕様にPOSIX(Portable Operating System Interface)で規定されているBRE とERE や,Perl(1)互換であるPCREがある.後方参照も,先読み後読みも,再帰もPCREに含まれている.

これら以外に各プログラミング言語やツールで(アドホックに? )拡張された機能が多数ある.サポートする機能は実装に依存し,サポート状況を把握するのは容易ではない.御興味ある方は,文献(2) の3.4や文献(3) などを御覧頂きたい.ツールや言語が(独自実装でなく)有名な正規表現ライブラリ(鬼車や鬼雲(4)など)を用いている場合は,それを理解すれば把握がしやすい.

3

練習環境 あなたの成長

学習のために,正規表現による検索を実行できる環境を用意してほしい.伝統的には,正規表現をサポートするテキストエディタ(vi など)やテキスト処理コマンド(grep など)となるが,近年はブラウザ上で正規表現による検索の動作確認をできるものもある.入門者であれば後者が分かりやすい.検索エンジンで“正規表現ブラウザ”と検索すれば,文献(5) などの優れた正規表現チェッカにたどり着ける.本稿は,必ず実行しながら読んでほしい.その方が記憶に定着する.

4

こんにちは世界 初めての正規表現

図1 のテキストを用いて,正規表現を用いたテキスト検索の練習をする.図の各行の左端の数字とコロンは行番号を表しており,テキストはそれ以外である.例えば1 行目は"hoge" である.

このテキストに対してhogeを検索すると,図2 のような検索結果になる.太字が検索にマッチした部分である.当然ながらこれは「h があり,その次にo があり,g があり,e がある」という条件を満たす部分を探す処理である.

少し発展させてみる.「h があり,何か1 文字あり,gがあり,e がある」という条件を満たす文字列を探したいとする.例えば,hage やhige やhyge を探したい.………