ここでは、2つの置換方法について説明しています。
▲置換 (1) では、「コンビニ」を「コンビニエンスストア」に置き換えるような場合に利用する方法を。
置換 (2) では、「コンビニ」を「こんびに」に書き換えるケースで利用可能な仕組みを紹介しています。
Windows XP Professional Service Pack 3
ActivePerl 5.8.8 Build 822
Encode-2.33
$data =~ s/pat/pattern/ig の形をよく使います。
$data に含まれる pat を Patrol に置き換えます。
大文字小文字を区別しない i が指定されています。
i が指定されていなければ、paT はそのままになります。
すべての pat を Patrol に書き換える g が指定されているので、pat が複数個含まれていた場合でも同様に
Patrol に変換されます。
逆に g が指定されていなければ、最初の1つのみ処理を実行してあとはそのままになります。
処理の結果は、shiftjis で出力されます。
スクリプトは utf8 で保存してください。
#!/usr/local/bin/perl
use utf8;
use strict;
use Encode;
binmode STDOUT, ":encoding(shiftjis)";
# 変数の設定
my $data = 'paT Car';
# 任意のパターンを置換
$data =~ s/pat/Patrol/ig;
print $data;
paT Car が Patrol Car になります。
$data =~ tr/list/LIST/ の形をよく使います。
$data に含まれる list を、それぞれ LIST に置き換えます。
処理の結果は、shiftjis で出力されます。
スクリプトは utf8 で保存してください。
#!/usr/local/bin/perl
use utf8;
use strict;
use Encode;
binmode STDOUT, ":encoding(shiftjis)";
# 変数の設定
my $data = 'abcdefghijklmnopqrstuvwxyz';
# list を LIST に置換
$data =~ tr/list/LIST/;
print $data;
出力結果は、次のようになります。
abcdefghIjkLmnopqrSTuvwxyz
実は、l, i, s, t の各文字がそれぞれ、L, I, S, T に対応しているのです。
$data =~ tr/0-9/0-9/;
このようにしてあげると、0 から 9 までの(いわゆる)半角数字を、一気に全角にすることもできます。
Powered by NIVOSIdE