ホームページ >バックエンド開発 >PHPチュートリアル >PHP には正規表現に関する詳細な手順があります_PHP チュートリアル
php(現在の主流の開発言語として)は*NIXの一貫した伝統を継承しており、正規表現の処理を完全にサポートしています。正規表現は、高度ではありますが、直感的ではない文字列の一致と処理の方法を提供します。 PERL の正規表現を使用したことのある友人は、正規表現が非常に強力であることを知っていますが、習得するのは簡単ではありません。
例:
^.+@.+..+$
この効果的だが理解できないコードは、一部のプログラマー (私) を頭痛の種にさせるか、正規表現の使用を諦めさせるのに十分です。このチュートリアルを読み終えると、このコードの意味が理解できると思います。
基本パターンマッチング
すべては基本から始まります。パターンは正規表現の最も基本的な要素であり、文字列の特性を記述する文字のセットです。パターンは、通常の文字列で構成される単純な場合もあれば、文字範囲、繰り返し、コンテキストを表すために特殊文字を使用する非常に複雑な場合もあります。例:
^once
このパターンには特殊文字 ^ が含まれており、このパターンは、once で始まる文字列のみと一致することを意味します。たとえば、このパターンは文字列「onceUponatime」には一致しますが、「There Once was a man from NewYork」には一致しません。 ^ 記号が先頭を示すのと同様に、$ 記号は特定のパターンで終わる文字列と一致します。
bucket$
このパターンは、「誰がこの現金をすべてバケットに保管したか」には一致しますが、「バケット」には一致しません。文字 ^ と $ を一緒に使用すると、完全一致を表します (文字列はパターンと同じです)。例:
^bucket$
は文字列「bucket」のみに一致します。パターンに ^ と $ が含まれていない場合は、そのパターンを含む任意の文字列と一致します。例: パターン
once
は、文字列
に一致します。かつてニューヨークから来た男性
誰が現金をすべてバケツに入れていた
。
このパターンの文字 (o-n-c-e) はリテラル文字、つまり文字自体を表しており、数字についても同様です。句読点や白文字 (スペース、タブなど) など、その他の少し複雑な文字にはエスケープ シーケンスが必要です。すべてのエスケープ シーケンスはバックスラッシュ () で始まります。タブ文字のエスケープ シーケンスは次のとおりです。したがって、文字列がタブ文字で始まるかどうかを検出したい場合は、次のパターンを使用できます:
^
同様に、次を使用します。
これは「改行」を意味し、改行を意味します。他の特殊記号は、前にバックスラッシュを付けて使用できます。たとえば、バックスラッシュ自体は . で表され、ピリオドは . で表されます。
文字クラスター
インターネット プログラムでは、通常、ユーザー入力を検証するために正規表現が使用されます。ユーザーがフォームを送信するとき、入力された電話番号、住所、電子メール アドレス、クレジット カード番号などが有効かどうかを判断するには、通常のリテラル文字を使用するだけでは十分ではありません。
そのため、必要なパターンを記述するために、より自由な方法、つまり文字クラスターを使用する必要があります。すべての母音文字を表すクラスターを作成するには、すべての母音文字を角かっこで囲みます。
[AaEeIiOoUu]
このパターンは任意の母音文字に一致しますが、表すことができるのは 1 つの文字のみです。次のような文字範囲を表すにはハイフンを使用します:
[a-z] //すべての小文字と一致
[A-Z] //すべての大文字と一致
[a-zA-Z] //すべての文字と一致
[0- 9] //すべての数字と一致します
[0-9.-] //すべての数字、ピリオド、マイナス記号と一致します
[ f
] //すべての白い文字と一致します
繰り返しますが、これらは 1 つの文字のみを表しており、これは非常に重要です。 「z2」、「t6」、または「g7」などの小文字と数字で構成される文字列と一致させたいが、「ab2」、「r2d3」、または「b52」には一致させたくない場合は、次のパターンを使用します: