構文 |
|
s/PATTERN/REPLACEMENT/オプション |
説明
- マッチ・パターン(PATTERN)を使って文字列検索を行い,REPLACEMENTに置換します。マッチ・パターンは正規表現で指定します。
- オプションを指定することで,文字列検索の際の動作を変更できます。例えば,大文字/小文字を区別しないようにできます。
- 置換対象 =~ s/PATTERN/REPLACEMENT/オプション の形で使います。
- 文字の繰り返し数を指定することができます。指定は(表)のように行います。
表{m,n} m回以上n回以下 {m,} m回以上 {m} m回 * 0回以上({0,}と同じ) + 1回以上({1,}と同じ) ? 0回または1回({0,1}と同じ)
使用例
#!/usr/bin/perl
use strict;
use warnings;
my $cmd = '/usr/bin/perl';
$cmd =~ s|/usr/bin|/usr/local/bin|;
print $cmd, "\n";
#!/usr/bin/perl
use strict;
use warnings;
my $filename = 'document.txt';
$filename =~ s/\.txt$/.bak/;
print $filename, "\n";
#!/usr/bin/perl
use strict;
use warnings;
my @items = qw(
Zom
Zoom
Zooom
Zoooom
Zooooom
);
foreach (@items) {
my $item = $_;
$item =~ s/Zo{2,}m/Zoom/;
# Zの次にoが二つ以上あってmがあったらZoomに置換する
print $item, "\n";
}
#!/usr/bin/perl
use strict;
use warnings;
my $item = 'aaa=bbb';
$item =~ s/^(.*)=(.*)$/$2=$1/; # $1=aaa $2=bbb
print $item, "\n"; # bbb=aaa
#!/usr/bin/perl
use strict;
use warnings;
my $item = 'aaa=111,bbb=222';
$item =~ s/\d+/(?)/g;
print $item, "\n"; # aaa=(?),bbb=(?)
#!/usr/bin/perl
use strict;
use warnings;
my @files = qw(
data.pdf
README.TXT
img2.png
sample.txt
index.html
DEFAULT.HTM
);
foreach (@files) {
my $file = $_;
$file =~ s/\.txt$/.bak/i;
print $file, "\n";
}
#!/usr/bin/perl
use strict;
use warnings;
my $str = "aaa\tbbb\t\tccc\t\t\tddd";
$str =~ s/\t+/\t/g;
print $str, "\n";