ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでの正規表現マッチングの実装の簡単な分析

PHP_PHP チュートリアルでの正規表現マッチングの実装の簡単な分析

WBOY
WBOYオリジナル
2016-07-15 13:26:35931ブラウズ

PHP 正規表現マッチングの実装の簡単な分析

PHP での正規表現のアプリケーションについて話すとき、PHP 正規表現マッチングは最終目標です。では、PHP 正規表現マッチングを実装するにはどうすればよいでしょうか?具体的にはどのような手法が用いられるのでしょうか?具体的に見てみましょう。

PHP は UNIX の一貫した伝統を継承しており、正規表現の処理を完全にサポートしています。正規表現は、高度ではありますが、直感的ではない文字列の照合と処理の方法を提供します。 PERL の正規表現を使用したことのある友人は、正規表現が非常に強力であることを知っていますが、習得するのは簡単ではありません。

PHP 正規表現マッチングのサンプル アプリケーション:

<ol class="dp-c"><li class="alt"><span><span>^.+@.+..+$  </span></span></li></ol>

この効果的だが理解できないコードは、一部のプログラマー (私) を頭痛の種にするか、正規表現の使用を諦めさせるのに十分です。このチュートリアルを読むと、このコードの意味が理解できるようになると思います。

PHP正規表現マッチングの基本的なパターンマッチング

すべては最も基本的なことから始まります。パターンは正規表現の最も基本的な要素であり、文字列の特性を記述する文字のセットです。パターンは、通常の文字列で構成される単純な場合もあれば、文字範囲、繰り返し、コンテキストを表すために特殊文字を使用する非常に複雑な場合もあります。例:

^once

このパターンには特殊文字 ^ が含まれており、このパターンは、once で始まる文字列のみと一致することを意味します。たとえば、このパターンは文字列「onceUponatime」には一致しますが、「There Once was a man from NewYork」には一致しません。 ^ 記号が先頭を示すのと同様に、$ 記号は特定のパターンで終わる文字列と一致します。

bucket$

このパターンは、「誰がこの現金をすべてバケットに保管したか」には一致しますが、「バケット」には一致しません。文字 ^ と $ を一緒に使用すると、完全一致を表します (文字列はパターンと同じです)。例:

^bucket$

は文字列「bucket」のみに一致します。パターンに ^ と $ が含まれていない場合は、そのパターンを含む任意の文字列と一致します。たとえば、パターン

once

は文字列

<ol class="dp-c">
<li class="alt"><span><span>There once was a man from NewYork  </span></span></li>
<li><span>Who kept all of his cash in a bucket. </span></li>
</ol>

と一致します。

このパターンの文字 (o-n-c-e) はリテラル文字、つまり文字自体を表しており、数字についても同様です。句読点や白文字 (スペース、タブなど) など、その他の少し複雑な文字にはエスケープ シーケンスが必要です。すべてのエスケープ シーケンスはバックスラッシュ () で始まります。タブ文字のエスケープ シーケンスは次のとおりです。したがって、文字列がタブ文字で始まるかどうかを検出したい場合は、次のパターンを使用できます:

^t

同様に、「改行」を表すには n を使用し、復帰を表すには r を使用します。他の特殊記号は、バックスラッシュ自体を . で表し、ピリオドを . で表すなど、前にバックスラッシュを付けて使用できます。

これで PHP 正規表現マッチングの紹介は終わりました。PHP 正規表現マッチングを理解して学習するのに役立つことを願っています。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446580.html技術記事 PHP 正規表現マッチングの実装の簡単な分析 PHP 正規表現マッチングは、PHP で正規表現を適用する最終的な目標です。具体的には…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。