php - PCRE 正規表現の条件付きサブグループ
マッチャーを条件付きでサブグループと一致させたり、アサーションの結果や以前にキャプチャしたサブグループが一致するかどうかに基づいて 2 つのオプションのサブグループから選択したりすることができます。 条件付きサブグループの 2 つの構文は次のとおりです:
(?(condition)yes-pattern) (?(condition)yes-pattern|no-pattern)
条件が満たされる場合は、yes-pattern を使用し、それ以外の場合は、no-pattern (指定されている場合) を使用します。 オプションのサブグループが 3 つ以上ある場合、コンパイル時エラーが生成されます。
条件は2つあります。 (条件) のかっこが数字で構成されるテキストの場合、その数字で表される (前の) サブグループが一致した場合 (つまり、yes パターンを使用した場合)、条件は満たされます。 次のパターンを考えてみましょう。読みやすくするために空白が追加されており (PCRE_EXTENDED オプションを参照)、3 つの部分に分かれています: ( ( )? [^()]+ (?(1) ) )
パターン 最初の部分of はオプションの左括弧に一致し、その文字が出現した場合は、それをキャプチャされた部分文字列の最初のサブグループに設定します。 2 番目の部分は、1 つ以上の括弧以外の文字と一致します。 3 番目の部分は条件付きサブグループで、最初のサブグループが一致するかどうかをテストします。一致する場合、つまり、ターゲット文字列が左括弧で始まり、条件が TRUE の場合は、yes-pattern を使用します。ここでは右括弧が一致する必要があります。それ以外の場合、パターンなしが存在しないため、サブグループは何にも一致しません。つまり、このパターンは、かっこなし、または右かっこで囲まれた一連の文字と一致します。
条件文字列(R)の場合、パターンまたはサブパターンへの再帰呼び出しを取得したときに満たされます。 「トップレベル」では、条件は常に false になります。
条件が一連の数字または (R) ではない場合、それはアサーションである必要があります。ここでのアサーションは、任意、肯定的、否定的、前向き、または後ろ向きにすることができます。このパターンを考えてみましょう。読みやすくするために空白が追加され、2 行目に 2 つの代替パスが追加されています。
(?(?=[^a-z]*[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )
条件付き小文字が後に続く小文字以外のアルファベットのオプションのシーケンスと一致する肯定的なアサーション。 つまり、ターゲットに少なくとも 1 つの小文字が存在するかどうかをテストし、小文字が見つかった場合、ターゲットは最初のオプションのブランチと一致し、それ以外の場合は 2 番目のブランチと一致します。 このパターンは、dd-aaa-dd または dd-dd-dd の 2 つの形式の文字列と一致します。 aaa は小文字、dd は数字を表します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
