○正規表現の概要   ----------------------------------------------------

表現方法 意味
. 一文字のワイルドカード
* 直前の文字が0個以上の繰り返し
? 直前の文字が0個または1個
+ 直前の文字の1回以上の繰り返し
^ 行頭にマッチ
$ 行末にマッチ
[ ] 特定の文字と一致 [a-z]ならaからzにマッチ
| 複数パターンのいずれか
( ) グループ化
\ 直後の文字をエスケープ
○パターンマッチ ---------------------------------------------------- ▼条件式 文字列 =~ /正規表現で書かれたパターン/ $str="testhellotest"; if($str=~/hello/){ print "ふくまれています"; }else{ print "ふくまれていません"; } 処理結果 ふくまれています ■1文字だけのワイルドカードは . です $str="testhellotest"; if($str=~/h...o/){ print "ふくまれています"; }else{ print "ふくまれていません"; } 処理結果 ふくまれています ■複数文字のワイルドカードは * です $str="testhellotest"; if($str=~/h*o/){ print "ふくまれています"; }else{ print "ふくまれていません"; } 処理結果 ふくまれています ○文字列置換 ---------------------------------------------------- 文字列 =~ s/正規表現で書かれたパターン/置換する文字列/ ,/g 複数の文字を入れ替えるオプション ■スペースをすべて取り除く $str=" Hello test test "; $str=~ s/\s+//g; print $str; 処理結果 Hellotesttest ■スペースを , に置換 $str=" Hello test test "; $str=~ s/\s+/,/g; print $str; 処理結果 ,Hello,test,test, ■先頭のスペースを削除 $str=" Hello test test "; $str=~ s/^\s+//; print $str; print "|"; 処理結果 Hello test test | ■末端のスペースを削除 $str=" Hello test test "; $str=~ s/\s+$//; print $str; print "|"; 処理結果 Hello test test| ■文字列置換 testという文字列を検索してinabaに置換する $str=" Hello test test "; $str=~ s/(?:test)/inaba/g; print $str; 処理結果 Hello inaba inaba ■先頭からの文字列置換 先頭からの文字列 Hello を検索してaaaに置換する $str="Hello test test "; $str=~ s/^Hello/aaa/; print $str; 処理結果 aaa test test 先頭からですので、 $str="aHello test test "; このようにすると何も置換されません。 応用としては、アドレスから http:// を取り除くなど。 $str="http://7ujm.net"; $str=~ s/^http:\/\///;; print $str; 処理結果 7ujm.net ▼一文字のワイルドカードは . です $str=" Hello test test "; $str=~ s/(?:t..t)/inaba/g; print $str; 処理結果 Hello inaba inaba ▼複数の文字のワイルドカード .+ です $str=" Hello test test "; $str=~ s/(?:t.+t)/inaba/g; print $str; 処理結果 Hello inaba ▼複数の文字列をマッチさせて置換する 文字列 Hello と test を inaba に置換する $str=" Hello Perl test test "; $str=~ s/(?:Hello) | (?:test) /inaba/g; print $str; 処理結果 inaba Perl inaba inaba ■文字の置換 ▼tをAに置換する $str=" Hello test test "; $str=~ s/[t]/A/g; print $str; 処理結果 Hello AesA AesA ▼tという文字をAAAに置換する $str=" Hello test test "; $str=~ s/[t]/AAA/g; print $str; 処理結果 Hello AAAesAAA AAAesAAA ▼o と tの文字を A に置換する $str=" Hello test test "; $str=~ s/[ot]/A/g; print $str; 処理結果 HellA AesA AesA ▼複数の文字 l を A に置換する $str=" Hello test lllll test "; $str=~ s/l+/A/g; print $str; 処理結果 HeAo test A test ■全ての文字を小文字にします $str=" Hello Perl test test "; $str=lc($str); print $str; 処理結果 hello perl test test ■全ての文字を大文字にします $str=" Hello Perl test test "; $str=uc($str); print $str; 処理結果 HELLO PERL TEST TEST ■先頭の一文字を大文字にします $str="test"; $str=ucfirst($str); print $str; 処理結果 Test


▲トップページ > perl 関連