正規表現まとめ

Perl/CGIプログラミング学習 の山と言っても過言ではないパターンマッチと正規表現。

Perl/CGIプログラミング入門者や初心者 にとっては踏ん張りどころですが、ある程度パターンマッチと正規表現を使えるようになってしまえば、これほど楽なものはありません。

ということでパターンマッチと正規表現についてまとめてみました。

学習手順

以下のページは、Perl/CGIプログラムで使用するパターンマッチと正規表現について、なるべく入門者や初心者でもわかりやすいように1から解説しています。

正規表現一覧

Perl/CGIプログラミングのパターンマッチで使用する正規表現をまとめてみました。

$`
$`とは、マッチした文字列の前にあるすべての文字列が格納されている特殊変数。
$&
$&とは、マッチした文字列全体が格納されている特殊変数。
$'
$'とは、マッチした文字列の後にあるすべての文字列が格納されている特殊変数。
$ + 数字
グループ化したパターンを後で参照するときに使用する特殊変数です。 例えば、「$1 $2 $3…」など。
\ + 数字
「$ + 数字」と同じです。 例えば、「\1 \2 \3…」など。
\w
\wとは、英字、数字、アンダースコアを表しています。 つまり、[a-zA-Z0-9_]ということです。
\W
\Wとは、英字、数字、アンダースコア以外の文字を表しています。 つまり、[^a-zA-Z0-9_]ということです。
\d
\dとは、数字を表しています。 つまり、[0-9]ということです。
\D
\Dとは、数字以外の文字を表しています。 つまり、[^0-9]ということです。
\A
\Aとは、文字列の最初にマッチさせる命令です。 つまり、メタ文字「^」と同じということです。
\Z
\Zとは、文字列の最後にマッチさせる命令です。 つまり、メタ文字「$」と同じということです。
\t
\tとは、タブを表しています。
\r
\rとは、リターン(復帰文字)を表しています。
\n
\nとは、改行を表しています。
\f
\fとは、ラインフィード(改ページ)を表しています。
\s
\sとは、スペースを表しています。
\S
\Sとは、スペース以外の文字を表しています。
\a
\aとは、アラームを表しています。
\d
\dとは、バックスペースを表しています。
\e
\eとは、エスケープを表しています。
\0 + 数字
\0に数字を付けることにより、8進法で表すASCII文字を表現できます。 例えば、「\013」といった感じです。
\x + 英数字
\xに英数字を付けることにより、16進法で表すASCII文字を表現したことになります。 例えば、「\x1a」といった感じです。
\c[
\c[とは、ASCIIコントロール文字を表現します。 例えば、「\c[ (\x1b, \033, \e)」など。 \cのみでは、Ctrlキーを表します。 そして、UNIXではCtrlキーを押しながらJキーを押すと、Enterキーと同じ効果があります。
#!/usr/bin/perl

use strict;
print "Content-type: text/html\n\n";

$_ = "\n";
print "OK" if /\cJ/;
exit;
UNIX上であれば、「OK」と表示されます。
\l
\lとは、次の1文字を小文字にする命令です。
\u
\uとは、次の1文字を大文字にする命令です。
\L
\Lとは、\Eまでの文字列を小文字にする命令です。
\U
\Uとは、\Eまでの文字列を大文字にする命令です。
\E
\Eとは、変更の終わりを表現します。
\Q
\Qとは、\Eまでの文字列で正規表現のメタ文字を文字にみなすようにする命令です。
\b
\bとは、単語の境界にマッチする表現です。
\B
\Bとは、単語の境界以外にマッチする表現です。