Perl 書式化文字列の構文

Perl スタイルの書式化文字列は、プレースホルダーおよびエスケープシーケンスを開始する ‘$’ および ‘\’ 以外のすべての文字を直値として扱う。

プレースホルダーシーケンスは、正規表現に対するマッチのどの部分を出力に送るかを指定する。

プレースホルダー

意味

$&

正規表現全体にマッチした部分を出力する。

$MATCH

$& と同じ。

${^MATCH}

$& と同じ。

$`

最後に見つかったマッチの終端(前回のマッチが存在しない場合はテキストの先頭)から現在のマッチの先頭までのテキストを出力する。

$PREMATCH

$` と同じ。

${^PREMATCH}

$` と同じ。

$'

現在のマッチの終端より後方のすべてのテキストを出力する。

$POSTMATCH

$' と同じ。

${^POSTMATCH}

$' と同じ。

$+

正規表現中の最後のマーク済み部分式にマッチした部分を出力する。

$LAST_PAREN_MATCH

$+ と同じ。

$LAST_SUBMATCH_RESULT

最後の部分式に実際にマッチした部分を出力する。

$^N

$LAST_SUBMATCH_RESULT と同じ。

$$

直値の ‘$’ を出力する。

$n

n 番目の部分式にマッチした部分を出力する。

${n}

n 番目の部分式にマッチした部分を出力する。

$+{NAME}

“NAME” という名前の部分式にマッチした部分を出力する。

上に挙げなかった $ プレースホルダーはすべて直値の ‘$’ として扱われる。

エスケープ文字の直後に文字 x が続いている場合、x が以下のエスケープシーケンス以外であればその文字を出力する。

エスケープ

意味

\a

ベル文字 ‘\a’ を出力する。

\e

ANSI エスケープ文字(コードポイント 27)を出力する。

\f

フォームフィード文字 ‘\f’ を出力する。

\n

改行文字 ‘\n’ を出力する。

\r

復改文字 ‘\r’ を出力する。

\t

タブ文字 ‘\t’ を出力する。

\v

垂直タブ文字 ‘\v’ を出力する。

\xDD

16 進数コードポイントが 0xDD である文字を出力する。

\x{DDDD}

16 進数コードポイントが 0xDDDD である文字を出力する。

\cX

ANSI エスケープシーケンス “escape-X” を出力する。

\D

D が範囲 1-9 の 10 進数字であれば、部分式 D にマッチしたテキストを出力する。

\l

次に出力する 1 文字を小文字で出力する。

\u

次に出力する 1 文字を大文字で出力する。

\L

以降 \E が現れるまで、出力する文字をすべて小文字にする。

\U

以降 \E が現れるまで、出力する文字をすべて大文字にする。

\E

\L および \U シーケンスを終了する。