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