![]() |
* 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. |
正規表現講座/6 のバックアップ(No.4)
頭から!おしりから!だんだん難しくなってきました。第6回です。 今まで覚えてきた「メタ文字」、正規表現特有の記号は、どれも、 1文字だったり複数文字だったりはするものの、「何かの文字」に マッチする記号でした。 今回のはちょっと毛色が異なり、「文字の位置」を表すメタ文字です。 先頭と末尾今回の記号は2つ。 ^ 先頭にマッチ $ 末尾にマッチ です。 これは、「先頭」「末尾」をあらわすメタ文字です。 何の先頭、末尾でしょうか? 実際に例を見ないと良く分かりませんね。
つまり、「^」「$」は文字にマッチするのではなく、「位置にマッチする」 メタ文字だと思ってください。 まるちいラインモードさて、何故さきほど、「とりあえず」と言ったかというと。 「マルチラインモード」というのがあり、そのON/OFFによって、「^」「$」の意味が 変わるからなのです。
つまり、マルチラインモードとは、「^」「$」が、「行の先頭、末尾」なのか、 「文字列全部の先頭、末尾」なのかを決めるモードです。 前回出てきた「シングルラインモード」と名前が逆のようで非常にややこしいのですが、 「シングルラインモード」と「マルチラインモード」は、逆の意味ではなく、まったく別の設定項目 だと覚えてください。 大抵のエディタでは、「マルチラインモードON」だと思います。 正規表現が使える言語等では、ON/OFFが選べる場合があります。 ちょっと脱線今回の「^」「$」のような記号は、「ゼロ幅記号」「ゼロ幅の言明」などと 呼ばれています。 行と行のすきま、つまり へもへも けのけの という文字列があったなら、 |へもへも|(改行)|けのけの|(改行) の|の部分にマッチするから、「ゼロ幅」なのでしょうけど、 なんとなく分かりにくい表現ですね。 ご指摘などはこちらへ |