ホームページ >バックエンド開発 >PHPチュートリアル >PHP コア テクノロジーとベスト プラクティスの正規表現一致ルール
PHP コアテクノロジーの正規表現マッチングルールとベストプラクティス
この記事では、一般的に使用されるマッチングルールをいくつか紹介します。
1. 文字グループ
これらのセットに対応するメタキャラクターがすでに存在するため、数字、文字、およびスペースを検索するのは非常に簡単ですが、事前定義されたメタキャラクターのない文字セットを照合する場合、方法は非常に簡単で、それをリストするだけです。そのうち角括弧内は。
例: [aeiou] は任意の英語の母音に一致し、[.*?] は句読点の 1 つに一致します。この時点では、角括弧内のメタ文字は特別な意味を失うことに注意してください。
たとえば、[0-9] の意味は d とまったく同じです。同様に、[a-zA-Z0-9] は w と同等です。
文字グループは非常に単純ですが、文字グループ内でエスケープが必要な場合は確実に把握してください。2. エスケープ
* の検索など、メタキャラクター自体を検索または一致させたい場合は?次に問題があります。それらは別の意味に解釈されるため、それらを指定する方法がありません。このとき、これらの文字の特別な意味を解除する必要がある。これをエスケープといいます。
PHP ではバックスラッシュ () を使用してエスケープを表し、Q と E はパターン内の正規表現メタ文字を無視することもできます。例:
d +Q.$.E$
3. 反意語
場合によっては、検索対象の文字が特定の文字クラスに属していない場合、または表現が既知の定義に反している場合 (数字以外の他の文字など)、反意語を使用する必要があります。
よく使われる対義語:
よく使われる対義語
| 説明
|
W
| 文字、数字、アンダースコア、漢字以外の文字 の文字 |
S
| 空白文字以外の文字と一致します
|
D
| 数字以外の文字と一致します
|
B
| 単語が始まる位置と一致しない、または
|
[^x]
| を除く任意の文字と一致しますたとえば、「D」は数字ではないことを意味します。 1) 空白文字を含まない文字列 |
2) a で始まり山括弧で展開される文字列:
ヒント:
ここでの「^」は、始まりではなく、間違っていることを意味します。どうやって差別化するのか?
始まりを意味する ^ は正規表現の先頭でのみ使用でき、否定を意味する ^ は文字グループ内でのみ使用できます。つまり、角かっこ内でのみ使用できます。
注:反意語は、考慮していなかった目に見えない範囲を拡大するため、意のままに反意語を使用しないでください。
4. 分岐 分岐とは、複数の一致する状況が考えられることを意味します。
(c|h|f|to|)cat
括弧内の式は、複数のルールに関係なく、特定のメソッドと一致すると見なされます。異なるルールを区切るには「 |」メソッドを使用します。
5. グループ化
単一の文字を繰り返すには、文字の直後に修飾子を追加するだけですが、複数の文字を繰り返したい場合はどうすればよいでしょうか?
一般的に使用されるグループ化構文:
カテゴリ
| 説明
| キャプチャ
|
expとキャプチャテキストを自動命名に一致させますグループでは、グループでは、 |
(?< name> exp; exp) |
expをexpにし、テキストを名前のグループにキャプチャしてください | (?:exp)一致するテキストをキャプチャします
| ゼロ幅アサーション
| (?=exp)|
exp |
| (?<= exp) |
マッチexp 後の位置 |
| (?!exp)
| exp ではない後の位置と一致します
| (? ||
| Comments
| (?#comment)|
コメントは正規表現に影響を与えません |
|