○正規表現の概要 ----------------------------------------------------
表現方法 |
意味 |
. |
一文字のワイルドカード |
* |
直前の文字が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 関連