[PR]看護師の好条件な求人情報満載:「夜勤は嫌!」など希望の転職が実現♪




 



Perl 08
パターンマッチ
[HOME] - [Perl_Index] - [BACK] - [NEXT]



パターンマッチ
2002/07/12 作成
-----------

Perlには「パターンマッチ」という非常に便利な文字列操作機能がついています。
文字列の中から特定の文字列があるかどうかを調べたり置換したりする事が簡単に出来たりします。

パターンマッチ意味
$a =~/照合パターン/パターンマッチ
$a =~s/照合パターン/置換パターン/置換
$a =~tr/a-z/A-Z/変換

パターンが一致した式は真を、一致したものがなければ偽を返します。

$str = "マッチでぇ〜す";
if($str =~/マッチ/){
  print "マッチでした";
}
else{
  print "マッチじゃありませんでした";
}
みたいに使います。

次に置換ですが。マッチした文字列を指定した文字列に置き換えます。
$str = "マッチでぇ〜す";
$str =~s/マッチ/マッチョ/;
こうすると$str内の「マッチ」という文字列が「マッチョ」に置き換えられ、結果として$str1の内容は「マッチョでぇ〜す」となります。
式の戻り値は置き換えた回数となり、一つもマッチしなければ偽を返します。

そして最後に変換。
$str = "ABCDefgh";
$str =~tr/a-z/A-Z/;
こうすると$str内の全ての小文字を大文字に変換する事ができます。


パターン結合演算子
2002/07/12 作成
-----------

『=~』の事です
パターンマッチ演算子と対象文字列を結ぶ働きをします。
この結合演算子が無い場合の対象文字列は「$_」になります。(「$_」とは引数等が省略された時にデフォルトで使われる隠れ変数のような物と考えておいてください…)


マッチ演算子のオプション
2002/7/12(金
-----------

パターンマッチにはいくつかのオプション機能があり、これによって更に高度な文字列操作が可能になります。

修飾子意味
g対象の全ての文字をマッチング対象にする(通常は一つ見つかったら終了)
i大文字と小文字を区別しない
m複数行に渡ってマッチング対象にする
ogオプションでの複数のマッチングの時に変数の値の展開を1度だけ行う

オプションは
$str =~/マッチ/g;
のように式の最後に追加する形で使います。
オプションの効果は表に書いてある通りですが…一応gオプションだけ例を挙げてみます。

$str = "マッチのパターンマッチ";

while($str =~ m/マッチ/g;){
  $a++;
}
print $a;
$strの中に「マッチ」が見つからなくなるまでループし、何個のパターンがマッチしたかを表示します。


パターン結合演算子
2002/07/12 作成
-----------

『=~』の事です
パターンマッチ演算子と対象文字列を結ぶ働きをします。
この結合演算子が無い場合の対象文字列は「$_」になります。(「$_」とは引数等が省略された時にデフォルトで使われる隠れ変数のような物と考えておいてください…)


置換のオプション
2002/07/12 作成
-----------

パターンマッチにはいくつかのオプション機能があり、これによって更に高度な文字列操作が可能になります。

修飾子意味
g対象の全ての文字をマッチング対象にする(通常は一つ見つかったら終了)
i大文字と小文字を区別しない
m複数行に渡ってマッチング対象にする
ogオプションでの複数のマッチングの時に変数の値の展開を1度だけ行う

オプションは
$str =~/マッチ/g;
のように式の最後に追加する形で使います。
オプションの効果は表に書いてある通りですが…一応gオプションだけ例を挙げてみます。

$str = "マッチのパターンマッチ";

while($str =~ m/マッチ/g;){
  $a++;
}
print $a;
$strの中に「マッチ」が見つからなくなるまでループし、何個のパターンがマッチしたかを表示します。




[HOME] - [Perl_Index] - [BACK] - [NEXT]

 









[PR]車当る!高収入アルバイトより:お得!?更に無料で50万もプレゼント♪