* 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.
ホーム
一覧
検索
最終更新
リンク
ヘルプ
ソース
新規
リンク
手動リンク
自動相互リンク
駄でべWiki:FrontPage
リンク元
検索キー一覧
自動相互リンク表
ヘルプ
整形ルール
プラグインマニュアル
浮子屋商店もよろしく。
正規表現講座/6
の編集
Top
>
正規表現講座
> 6
TITLE:間違いだらけの正規表現講座 level 6 #contentsx * 頭から!おしりから! [#o42f3b2e] だんだん難しくなってきました。第6回です。~ 今回は、位置指定について覚えましょう。 今まで覚えてきた「メタ文字」、正規表現特有の記号は、どれも、 1文字だったり複数文字だったりはするものの、「何かの文字」に マッチする記号でした。 今回のはちょっと毛色が異なり、「文字の位置」を表すメタ文字です。 * 先頭と末尾 [#s12ba440] 今回の記号は2つ。 ^ 先頭にマッチ $ 末尾にマッチ です。 これは、「先頭」「末尾」をあらわすメタ文字です。 何の先頭、末尾でしょうか?~ とりあえず、まずは「行の先頭」「行の末尾」と思っていいです。 実際に例を見ないと良く分かりませんね。 :「^[0-9]」|これは、行の先頭にある数字にマッチします。行の途中に数字があってもマッチしません。 :「。$」|これは、行の最後が。で終わっていれば、その「。」とマッチします。 :「^■.*■$」|これは、行の先頭に■があり、その後何か文字列が続いて、行の最後に■がある行全体にマッチします。 つまり、「^」「$」は文字にマッチするのではなく、「位置にマッチする」 メタ文字だと思ってください。 * まるちいラインモード [#m72ca27e] さて、何故さきほど、「とりあえず」と言ったかというと。 「マルチラインモード」というのがあり、そのON/OFFによって、「^」「$」の意味が 変わるからなのです。 |マルチラインモード|^の意味|$の意味| |ON|行の先頭にマッチ|行の末尾にマッチ| |OFF|文字列全部の先頭にマッチ|文字列全部の末尾にマッチ| つまり、マルチラインモードとは、「^」「$」が、「行の先頭、末尾」なのか、 「文字列全部の先頭、末尾」なのかを決めるモードです。 前回出てきた「シングルラインモード」と名前が逆のようで非常にややこしいのですが、 &color(Red){「シングルラインモード」と「マルチラインモード」は、逆の意味ではなく、まったく別の設定項目}; だと覚えてください。 大抵のエディタでは、「マルチラインモードON」だと思います。~ つまり、「^」「$」は行の先頭、末尾をあらわす記号となります。 正規表現が使える言語等では、ON/OFFが選べる場合があります。~ 「マルチラインモードOFF」だと、「^」「$」は、正規表現を適用する~ 文字列全体の先頭、末尾、という意味になります。 * ちょっと脱線 [#yab8df23] 今回の「^」「$」のような記号は、「ゼロ幅記号」「ゼロ幅の言明」などと 呼ばれています。 行と行のすきま、つまり へもへも けのけの という文字列があったなら、 |へもへも|(改行)|けのけの|(改行) の|の部分にマッチするから、「ゼロ幅」なのでしょうけど、 なんとなく分かりにくい表現ですね。 * ご指摘などはこちらへ [#b35b5afb] - まるちいラインモード→マルチラインモード -- A &new{2021-09-17 (五) 16:37:40}; #comment
タイムスタンプを変更しない
TITLE:間違いだらけの正規表現講座 level 6 #contentsx * 頭から!おしりから! [#o42f3b2e] だんだん難しくなってきました。第6回です。~ 今回は、位置指定について覚えましょう。 今まで覚えてきた「メタ文字」、正規表現特有の記号は、どれも、 1文字だったり複数文字だったりはするものの、「何かの文字」に マッチする記号でした。 今回のはちょっと毛色が異なり、「文字の位置」を表すメタ文字です。 * 先頭と末尾 [#s12ba440] 今回の記号は2つ。 ^ 先頭にマッチ $ 末尾にマッチ です。 これは、「先頭」「末尾」をあらわすメタ文字です。 何の先頭、末尾でしょうか?~ とりあえず、まずは「行の先頭」「行の末尾」と思っていいです。 実際に例を見ないと良く分かりませんね。 :「^[0-9]」|これは、行の先頭にある数字にマッチします。行の途中に数字があってもマッチしません。 :「。$」|これは、行の最後が。で終わっていれば、その「。」とマッチします。 :「^■.*■$」|これは、行の先頭に■があり、その後何か文字列が続いて、行の最後に■がある行全体にマッチします。 つまり、「^」「$」は文字にマッチするのではなく、「位置にマッチする」 メタ文字だと思ってください。 * まるちいラインモード [#m72ca27e] さて、何故さきほど、「とりあえず」と言ったかというと。 「マルチラインモード」というのがあり、そのON/OFFによって、「^」「$」の意味が 変わるからなのです。 |マルチラインモード|^の意味|$の意味| |ON|行の先頭にマッチ|行の末尾にマッチ| |OFF|文字列全部の先頭にマッチ|文字列全部の末尾にマッチ| つまり、マルチラインモードとは、「^」「$」が、「行の先頭、末尾」なのか、 「文字列全部の先頭、末尾」なのかを決めるモードです。 前回出てきた「シングルラインモード」と名前が逆のようで非常にややこしいのですが、 &color(Red){「シングルラインモード」と「マルチラインモード」は、逆の意味ではなく、まったく別の設定項目}; だと覚えてください。 大抵のエディタでは、「マルチラインモードON」だと思います。~ つまり、「^」「$」は行の先頭、末尾をあらわす記号となります。 正規表現が使える言語等では、ON/OFFが選べる場合があります。~ 「マルチラインモードOFF」だと、「^」「$」は、正規表現を適用する~ 文字列全体の先頭、末尾、という意味になります。 * ちょっと脱線 [#yab8df23] 今回の「^」「$」のような記号は、「ゼロ幅記号」「ゼロ幅の言明」などと 呼ばれています。 行と行のすきま、つまり へもへも けのけの という文字列があったなら、 |へもへも|(改行)|けのけの|(改行) の|の部分にマッチするから、「ゼロ幅」なのでしょうけど、 なんとなく分かりにくい表現ですね。 * ご指摘などはこちらへ [#b35b5afb] - まるちいラインモード→マルチラインモード -- A &new{2021-09-17 (五) 16:37:40}; #comment