正規表現使用時に利用できる特殊変数
Perlで正規表現を使用する際、以下の4つの特殊変数が利用できます。
メタ文字 | 説明 |
---|---|
$& | 文字列の中でパターン全体がマッチした部分を参照 |
$` | 文字列の中でマッチに先行する部分を参照 |
$' | 文字列の中でマッチに続く部分を参照 |
$+ | 最後にマッチした文字列を返す |
正規表現を使用する際、検索文字列のなかでマッチする特定の文字列がほしい、でも元の文字列を壊したくないから置換は使えない、なんてシーンがありますよね。
そんなとき上記の変数を利用すると、元の文字列を壊すことなく任意の文字列が取得できます。
こんなかんじです。
#!/usr/bin/perl use strict; use warnings; use utf8; use feature qw/say switch/; use open IO => qw/:utf8 :std/; my $string = "午後の紅茶は150円で買える"; $string =~ m|\d{3}|; say "コカコーラは$&円で買える"; # コカコーラは150円で買える say $string; # 午後の紅茶は150円で買える
Perlは特殊変数がたくさんあって覚えるのが大変です。
Pythonみたいに正規表現使うのもオブジェクト指向、なんて考えなくてもいいのは楽なんですが。