--- title: 『新版Perl言語プログラミングレッスン入門編』第7章・正規表現の基本 author: kazu634 date: 2008-02-18 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:3745;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - Perl - Programming ---
今日からは正規表現を頑張ってみます。基本的に正規表現のイロハは知っているので、Perlでどのように正規表現を使うのかを知ることが学習のメインポイントになると思っています。
追記: 基本だから、結構知っていることばっかりだったかも。
「=~」演算子を用いることで、「左辺の文字列が右辺のパターンに一致するかどうか」を調べます。
use strict; use warnings; my $str = 'yesterday'; if ($str =~ /yes/) { print "Match!\n"; } else { print "No Match!\n"; }
use strict; use warnings; my $str = 'yesterday'; if ($str =~ /yes/) { print "$& --- Match!\n"; } else { print "No Match!\n"; }
このようにすると、変数 $& には「yes」が格納される。
直前にあるのが「あっても、なくても構わない」ことを示します。
「s///」を使うよ!
use strict; use warnings; my $str = "This is a cat. That is a cat, too.\n"; $str =~ s/cat/dog/; print $str;
「s/cat/dog/」を使うと、最初にマッチしたcatだけを置換して、文字列の残りは無視されることに注意!ただし、次のようにすると全部置換してくれる。
use strict; use warnings; my $str = "This is a cat. That is a cat, too.\n"; $str =~ s/cat/dog/g; print $str;