正規表現とはUNIX/Linuxの世界で広く一般的に使用されている検索や置換に用いる技法です。
もちろん何らかの文字列や数字列をそのまま検索・置換することもできるわけですが、1通りの記述方法でより汎用的にファイルや文章、文字列、数字列、改行等々にマッチする式を書くことができるところに正規表現の存在意義と魅力があります。
正規表現はUNIX/Linuxシェル、LinuxにおけるFSF/GNU Projectのbashを含む各種GNUコマンド、find、grep、awk、sed、また、Perl他各種スクリプトなどで幅広く利用できます。
regular expressions
regular expression
regex
regexp
正規表現は米英語ではregular expression/regular expressionsで略記されることも多く、特にregexpがより自然な略し方と思われ、比較的多用されるものと思われます。
また、grepコマンドの名前の由来は、Global Regular Expressionであり、これに拡張を加えたExtended Regular Expression(通称、egrep)などがあります。
正規表現はその機能性の違いから、それぞれ微妙に文法が異なる部分もあります。
PerlはC/各種shell/awkコマンド/sedコマンド/trコマンド/grepコマンド等々各種UNIX/Linuxコマンドなどを参考に作られた言語であり、正規表現においても似たような記述方法を利用できることも少なくありません。
中でも置換演算子[s]/変換演算子[tr]は、UNIX/Linuxコマンドとほぼ同様に使えますし、grepは同名の関数が用意されています。
またPerlの正規表現も各種UNIXコマンドを参考に作られている為、かなり強力でGNU/LinuxをはじめとするLinuxディストリビューションの普及と共にgrep含むGNUコマンドでは逆にPerlの正規表現を利用できるケースもあります。
C言語では[ pcre.h ]というヘッダファイルをincludeすることによりPerlの正規表現を利用することもできます。
また各種UNIX/Linuxコマンドにおける正規表現同様、Perlにおける正規表現についてもパターンマッチ・パターンマッチングなくして語ることはできないでしょう。
Perlのパターンマッチの基本は次の通りです。
正規表現 / Regular Expression
パターンマッチング / Pattern Match / Pattern Matching
演算子 / Operators
修飾子 / Modifiers
量指定子 / Quantifiers
メタ文字/メタキャラクタ / Metacharacters
エスケープシーケンス / Escape sequences
文字クラス / Character Classes
略記/特殊エスケープ文字 / Special Escapes