はじめに
仕事上正規表現を見かけることはありますが、自分から積極的に使うことはありませんでした。
理由の第1位は「読めないから」。
仕事では「.*」しか使ったことありません。
逃げ回っていたらついに正規表現をそこそこ使いそうなプロジェクトに入ってしまいました。
・・・よし、観念してちゃんと勉強しましょう。
正規表現とは
そもそも正規表現とは何か
正規表現って文字列をマッチングさせるためのパターンっていう認識でした。
でも記事書く以上この1行だけだと微妙なので、ちゃんと調べましょう。
手っ取り早くWikipedia大先生にお聞きしました。
Wikipedia
もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。形式言語理論では、形式言語が正規言語であることと正規表現によって表せることは同値である。
・・・え?もともとは違うの??
とはいえ、今は文字列のマッチングパターンを表すものを「正規表現」と呼ぶようです。
正規言語が気になった方は下記の方の記事をどうぞ↓
正規言語とは何か?
正規表現ライブラリ
正規表現と言っても、1つの方式というわけではなく、様々なライブラリがあるようです。
ここら辺はプログラム言語と似たような感じでしょうか。
Wikipediaでは代表的な例として下記が挙げられています。
ライブラリ名 | 説明 |
---|---|
PCRE | Perl 5形式の正規表現をC言語で実装したライブラリ ApacheやPHPといった様々なソフトウェアに組み込まれている |
鬼車 | 正規表現オブジェクトごとに文字コードを指定できることが特徴のライブラリ |
鬼雲 | 鬼車からフォークされたライブラリ |
re2 | Googleが提供する正規表現ライブラリ 他の正規表現ライブラリとは異なりオートマトン理論を使用している |
GNU Regex | GNU Cライブラリに標準ライブラリとして組み込まれている |
Boost.Regex | C++用のライブラリ |
その2へ続く
ここからが本番なのですが、長くなりそうなので次回にします!
正規表現の考え方に主観を置いて書く予定なので、こうご期待!!