|
メタ文字
2002/07/12 作成 ----------- メタ文字(「メタキャラ」とも言うらしい)とは、その文字自体以外の特殊な意味を持つ文字の事です。 「数字一文字」とか「1つ以上連続している文字」みたいな物があります。 「メタ文字(meta character)」の「メタ(meta)」とは、「すべての、全部の、そうなべする、網羅する、メタ〜」という意味だそうで、つまり、メタ文字を日本語で言うと 「全ての文字、全部の文字、そうなべする文字、網羅する文字、メタ文字」 という感じになります。 要するに「指定した条件に見合う全ての文字」という事でしょうか。 「数字一文字」は「0〜9全ての数字一文字」とも言えますね。納得。 これはパターンマッチにも使う事が出来ます。 特定のキーワードではなく、いくつか条件を決めて文字列をマッチングしたい時に便利なわけです。 ではPerlで使われるメタ文字一覧
使い方は次の「正規表現」で。 |
|---|
|
正規表現
2002/07/12 作成 ----------- 正規表現とは…『いくつかの文字列を一つの形式で表現するための表現方法』だそうです… 要するにメタ文字を使った文字列表現の事ですね。 例を挙げてみます。
マッチ...
「.」はとにかく一文字を示すので、「マッチでぇす」でも「マッチで〜す」でも「マッチですよ」でも「マッチマッチ」でもどれでもマッチするという事になりますね。これが正規表現です。 では、Perlでの使用例。
$str = "aabcdef"
「.」は「とにかくなんでもいいから一文字を示す」、if( $str =~/aa.*/ ){ print "マッチでした"; } 「*」は「直前の文字が0回以上連続している事を示す」なので、 「.*」は「とにかくなんでもいい一文字が0回以上連続する事を示す」 →「文字が0回以上連続する事を示す」という意味になります。 ここではif文で$strと「aa.*」を比較 つまり 「aabcdef」という文字列と、「aaに続いて文字が0回以上連続している」という正規表現をマッチングしています。 対象文字列の「aabcdef」はこの条件を満たしているのでif文は真となり、「マッチでした」と結果が出力される事になります。 全てのメタ文字の用法を説明していてはキリが無いので、別の機会に詳しくやってみます… |
|---|
|
正規表現のグループ化
2002/07/12 作成 -----------
$str = "abc,def,ghi";
「()」内のマッチした値は、特殊な変数「$1,$2,$3…」に格納されていきます。これをグループ化といいます。if( $str =~/(.*),(.*),(.*)){ $group1 = $1; $group2 = $2; $group3 = $3; } 上の例では$group1〜3の変数にそれぞれ「abc」「def」「ghi」と格納されていくことになります。 |
|---|