正規表現(せいきひょうげん、regular expression)とは、文字
列の集合を一つの文字
列で表現する方法の一つである。正則表現(せいそくひょうげん)とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる。まれに正規式と呼ばれることもある。
もともと
正規表現は形式言語理論において正規言語を表すための手段として導入された。形式言語理論では、形式言語が正規言語であることと正規表現によって表せることは同値である。
その後
正規表現は
テキストエディタ、ワードプロセッサをはじめとする
アプリケーションソフトでパターンマッチ文字
列を表すために使用されるようになり、表せるパターンの種類を増やすために本来の正規表現にはないさまざまな記法が新たに付け加えられた。このような拡張された正規表現には正規言語ではない文字
列も表せるものも多く、ゆえに
正規表現という名前は実態に即していない面もあるが、伝統的に
正規表現と呼ばれ続けている。
この記事では主にこのような
正規表現を用いたパターンマッチについて説明している。以下、誤解のない限り、
アプリケーションソフトやプログラミングにおいて
正規表現を用いた文字
列のパターンマッチを
行う機能のことを、単に
正規表現という。
ほとんどの
プログラミング言語では、構文または
ライブラリによって
正規表現を使うことができるようになっている。構文や
ライブラリに
正規表現を備えた
プログラミング言語やユーティリティとして、AWK、Sed、
Perl、
Python、
Ruby、Java、
JavaScript、
PHPなどがある。
また、
プログラミング言語の開発などに用いるlexも
正規表現を使う。
それぞれの言語やアプリケーションで細部の仕様が異なっているが、
POSIXにより標準規格も定められそれに準拠するものも増えてきてはいる。