ホームページ  >  記事  >  ウェブフロントエンド  >  通常の複数行モードと単一行モードの使用に関する詳細なグラフィックとテキストの説明

通常の複数行モードと単一行モードの使用に関する詳細なグラフィックとテキストの説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-29 16:14:022059ブラウズ

今回は、通常の複数行モードと単一行モードの使用について、図とテキストで詳しく説明します。通常の複数行モードと単一行モードを使用する際の 注意事項 について、実際のケースを見てみましょう。見てください。

Expresso で、「複数行モード」をテストします

テスト 1

注: ここのサンプル テキストには 3eeee の後に改行はなく、カーソルは e の直後にあります。上の検索結果領域に示されているように、一致結果は 3eeeee です。

ここで 1abcde と 2abc が一致しないのはなぜですか?

複数行モードを有効にする

^

文字列の先頭(文字列の開始位置)と一致することも、行の先頭(つまり、改行文字の後の位置)と一致することもできますn) $ 文字列の末尾 (文字列の終了位置) と一致することもできますが、行の末尾 (つまり、改行文字 n より前の位置) と一致することもできます

マルチをオフにします行モード

^ 文字列の先頭のみに一致します

$ 文字列の末尾のみに一致します

知識ポイント: r は復帰文字、n は改行文字です。 Windows では、通常ライン フィードと呼ばれるものは、基本的に最初にキャリッジ リターン、次にライン フィードと呼ばれます。詳細については、以下で説明します。

上の図に示すように: r は [CR] に一致、n は [LF] に一致 <—— CR はキャリッジリターン、LF はラインフィード

ab
cd
e
などの複数の段落の文字列Windows で操作する システムでは、実際には ab[CR][LF]cd[CR][LF]e です

Windows では、テキスト内のキャリッジ リターンとライン フィードは 0D 0A として保存されます。つまり、最初に格納されるのは「キャリッジリターンr」、次に「ラインフィードn」が格納されます。

CRは記号「r」で表され、ASCIIコードは13です。 16 進数は 0x0D です。

LF は記号「n」で表され、ASCII コードは 10、16 進数は 0x0A;

正規表現

: (?m)^(dw+)(s*)$サンプルテキスト

マッチング結果

Expresso と PHP では、複数行モードが有効な場合、「$」は文字列の末尾または「n」より前の位置と一致します。

単一行モード

単一行モードを有効にする: . 任意の文字に一致します (改行を含む)

単一行モードを閉じる: . 非改行のみに一致します

その他
任意の文字 (.つまり、n すべての文字に一致しない場合を除きます。)複数行モードは ^ と $ の一致に影響します。

複数行モードの一致には ^ または $、またはその両方が含まれている必要があります。 mを付けても意味がありません

シングルラインモードとマルチラインモードは8極に負けない概念です この2つのMSが相互に排他的であるのは、通常の開発の歴史的理由によるものです。単一行モードは小数点「.」の一致範囲に影響します

複数行パターンは「^」と「$」の一致範囲に影響します

以下の概念については、必然的な関係はありません。グローバル マッチング、複数行モード、グリーディ モードの切り替え

グローバル マッチングはオフになり、最初に成功したマッチングのみがマッチングされます。グローバル マッチングはオンになり、成功したすべてのマッチングがマッチングされます

グローバル モードは一部のスクリプト言語でのみ見られる概念です

一致する場合は、.NET の Match メソッドと同様にグローバル モードをオフにし、.NET と同様にグローバル モードをオンにします。 Matches メソッド

置換を実行する場合は、Java の replaceFirst と同様に、グローバル モードをオフにします、Java


の replaceAll と同様に、グローバル モードをオンにします (一致を実行するときは、PHP
関数
の preg_ match と同様に、グローバル モードをオフにします。; の preg_ match_all 関数と同様に、グローバル モードをオンにします) PHP)

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:

PHP正規ゼロ幅アサーションの使い方を詳しく解説

正規表現のあいまい一致機能の実装方法

以上が通常の複数行モードと単一行モードの使用に関する詳細なグラフィックとテキストの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。