![]() |
* U K I Y A H O N P O * Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura, che la diritta via era smarrita. |
正規表現講座/3 のバックアップ(No.3)
何文字でも入るさて、第3回です。今回は、「何文字でも入る」伏字のやり方を覚えましょう。 これが何文字でも続くさて、「何文字でも入る」伏字というのは何かというと、イメージとしては、
「愛天使~きゅん」というような表現で、「~」が果たす役割に似ています。 ただし、コンピュータの正規表現の世界では、これを2つの正規表現の組み合わせで表現します。 さて、今回の最初の正規表現記号です。 * この記号。これは、「直前の正規表現の、0回以上の繰り返し」という意味になります。 何でもいいから0文字以上.* 正規表現「.」と組み合わせた場合。 例えば、「けの.*ぴ」という正規表現には、「けのぴ」(0文字)、「けのっぴ」(1文字) 「けのけのけのっぴ」(5文字)の何れもマッチします。 数字0文字以上[0-9]* 正規表現「[0-9]」と組み合わせた場合。 この正規表現には、「0」「8390」といった、数字の連続したものが全てマッチします。 指定した文字0文字以上けの*っぴ 普通の文字と組み合わせることもできます。 1文字以上さて、見てきたとおり、「*」は、「0回以上の繰り返し」となっているため、 + これは、「1回以上の繰り返し」を表します。 0回もしくは1回? これは、「0回もしくは1回の繰り返し」を表します。 練習さて、練習の時間です。 今回は、次のような文字にマッチする正規表現を考えてみてください。 うはwwwwwwwwおkkkkkwwwwwww 分解すると、
正規表現テスターを立ち上げ、適当にうはwwwwおkkkwwwwといった 文字列を入れ、正規表現でマッチさせてみてください。 正解の一例を以下に示しておきます。 うはw+おk+w+ 最長一致!今回お話した正規表現を使った場合、「どこまでがマッチするか」が微妙な場合が出てきます。 正規表現の場合、特に指定しない限り、大抵の場合、「最長一致の法則」というものが適用されます。 まだそれほど気にしなくてもいいですが、そのうち困ったことが出てくる場合があります。 ちょっと脱線今回お話した「*」や「?」は、「量指定子」などと呼ばれています。 ご指摘などはこちらへ |