Perl

2012年8月13日 at 11:11 PM

Perl 正規表現でない通常文字で置換を行うには?

Q.

正規表現でない置換ってどうやればいいんでしょうか?
quotemetaはなしで

※quotemeta – 正規表現文字のエスケープ

正規表現文字列を通常の文字として扱う。ワード文字以外のすべての文字の直前に\がつけられます

 

 

A.一文字の置換ならtr//が使える。
それ以外なら、以下
sub replace {
my ($string, $replacer, $replacement) = @_;

my $replacer_length = length $replacer or return $string;

my $pos = length $string;
while(($pos = rindex($string, $replacer, $pos – 1)) >= 0){
$string =
substr($string, 0, $pos) .
$replacement .
substr($string, $pos + $replacer_length);
}

return $string;
}

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



こちらの関連記事もオススメ!