せいき‐ひょうげん〔‐ヘウゲン〕【正規表現】
正規表現 [regular expression]
正規表現
正規表現
正規表現
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/15 02:51 UTC 版)
![]() | 出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 |
正規表現(せいきひょうげん、英: regular expression)は、文字列の集合を一つの文字列で表現する方法の一つである。
もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。形式言語理論では、形式言語が「正規言語であること」と「正規表現によって表せること」は同値である。
その後正規表現は単機能の文字列探索ツールやテキストエディタ、ワードプロセッサなどのアプリケーションで、マッチさせるべき対象を表すために使用されるようになり、表せるパターンの種類を増やすために本来の正規表現にはないさまざまな記法が新たに付け加えられた。このような拡張された正規表現には正規言語ではない文字列も表せるものも多く、ゆえに正規表現という名前は実態に即していない面もあるが、伝統的に正規表現と呼ばれ続けている。
この記事では主にこのような正規表現を用いたパターンマッチングについて説明している。以下、誤解のない限り、アプリケーションやプログラミングにおいて正規表現を用いた文字列のパターンマッチングを行う機能のことを、単に正規表現という。
ほとんどのプログラミング言語では、ライブラリによって正規表現を使うことができる他、一部の言語では正規表現のリテラルもある。「正規表現によるマッチ」を意味する(専用の)演算子がある言語なども一部ある。具体例として、grep, AWK, sed, Perl, Tcl, lex などがある。
それぞれの言語やアプリケーションで細部の仕様が異なっている、といったように思われることも多いが(古い実装では実際にそのようなことも多い)、近年は同じライブラリを使っていれば同じということも多い。またPOSIXなど標準もある。
基本的な概念
理論的に明解であり扱いも容易であるため、形式的な説明を先に述べる。
形式的な説明
記号(アルファベット)
- Jeffrey E.F. Friedl『詳説正規表現』歌代和正監訳、春遍雀來・鈴木武生共訳(第1版)、オライリー・ジャパン、1999年4月。ISBN 4-900900-45-1。
- Jeffrey E.F. Friedl『詳説正規表現』田和勝訳(第2版)、オライリー・ジャパン、2003年5月。ISBN 4-87311-130-7。
- Jeffrey E.F. Friedl『詳説正規表現』株式会社ロングテール・長尾高弘訳(第3版)、オライリー・ジャパン、2008年4月。ISBN 978-4-87311-359-3 。
- Jan Goyvaerts、Steven Levithan『正規表現クックブック』長尾高弘訳、オライリー・ジャパン、2010年4月。ISBN 978-4-87311-450-7 。
外部リンク
- 正規表現 - MDN (MDN Web Docs) ・(翻訳版)
- 正規表現メモ - sed, grep, perl など様々なソフトの正規表現がまとめられている。
正規表現
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/17 08:04 UTC 版)
LuaはPOSIXやECMAScript標準の正規表現とは異なる独自のカスタムパターンマッチングをサポートする。 local myTable = { "Gnome,160,30", "Sylph,100,70", "Salamander,200,20", "Ondine,140,60",}for i = 1, #myTable do local name, hp, mp = string.match(myTable[i], "([^,]+)%,([^,]+)%,(.+)") print(string.format("Name = %q, HP = %d, MP = %d", name, tonumber(hp), tonumber(mp)))end
※この「正規表現」の解説は、「Lua」の解説の一部です。
「正規表現」を含む「Lua」の記事については、「Lua」の概要を参照ください。
「正規表現」の例文・使い方・用例・文例
固有名詞の分類
- 正規表現のページへのリンク