燈明ブログ

現状は小池啓仁の応援ブログ

s修飾子の威力

Perlでは、テキストの編集処理が非常にラクチンです。
これは、Perlの柔軟な言語仕様と正規表現のお陰です。
とにかく、一度でもこのラクチンを経験すると他の言語に戻れなくなりますね!


特に、テキストファイルの全内容を一行で扱うことのできる正規表現のs修飾子は強力ですね。
s修飾子を使って、正規表現の置換をやりまくれば、大体の編集処理が出来てしまいます。
要は、複数行を簡単に置換することができるのです。

use strict;
use warnings;

my $strText = << "END_OF_TEXT";
1234567890
ABCDEFGHIJ
0987654321
XXXXXXXXXX
小池啓仁
1234567890
ABCDEFGHIJ
END_OF_TEXT

$strText =~ s/X.*90/\?\?\?\?\?\?\?\?\?\?\n小池康友\n0987654321/s;

print $strText;

ただ、メインロジックより、正規表現の方が多くなると、Perlでなく、宇宙語みたいになってしまうので注意が必要です。
しかし、それが快感だったりするのですが…。
ちなみに、前の『s』は置換演算子で、後の『s』がs修飾子です。詳しくは以下で。


なるほどなぁと思った人は、本ブログの応援クリックも、よろしくお願いします。