『初めてのPerl』第9章 正規表現によるテキスト処理

大文字と小文字の変換:

#!/usr/bin/env perl
use v5.12;
use warnings;
$_ = "I saw Barney with Fred.";
# 文字列全体を大文字・小文字にしたいときは、uc又はlcを使う
say uc; # I SAW BARNEY WITH FRED.
say lc; # i saw barney with fred
# 一部分だけを大文字・小文字にしたいときは、正規表現の置換でU又はLを使う
s/(fred|barney)/U$1/gi && say; # I saw BARNEY with FRED.
s/(fred|barney)/L$1/gi && say; # I saw barney with fred.
# 一文字目だけを大文字・小文字にしたいときは、正規表現の置換でu又はlを使う
s/(fred|barney)/u$1/gi && say; # I saw Barney with Fred.

split演算子(指定したパターンにしたがって文字列を分割):

#!/usr/bin/env perl
use v5.12;
use warnings;
my @fields = split /:/, "abc:def:g:h"; # ("abc", "def", "g", "h")

join関数(ばらばらの文字列を接着して一つの文字列にする):

#!/usr/bin/env perl
use v5.12;
use warnings;
$_ = join ":", 4, 6, 8, 10, 12;
say; # 4:6:8:10:12

m//をリストコンテキストで使う:

#!/usr/bin/env perl
use v5.12;
use warnings;
$_ = "Hello there, neighbor!";
# m//をリストコンテキストで使うと、マッチによって作られたキャプチャ変数のリストを返す
my($first, $second, $third) = /(S+) (S+), (S+)/;
say "$second is my $third"; # there is my neighbor!

特殊変数$^I(指定した拡張子のバックアップを作成):

#!/usr/bin/env perl
use v5.12;
use warnings;
$^I = ".bak"; # 指定したファイル名.bak という名前のバックアップファイルを作成する
while (<>) {
// 開いたファイルに対して何か処理をする
}

コメントを残す

コメントを残す