『初めての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:12m//をリストコンテキストで使う:
#!/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 (<>) { // 開いたファイルに対して何か処理をする }