検索
ホームページウェブフロントエンドjsチュートリアルPHP の通常のゼロ幅アサーションの使用方法の詳細な説明

今回は、PHP の通常のゼロ幅アサーションの使用について詳しく説明します。PHP の通常のゼロ幅アサーションを使用する際の 注意事項 は何ですか?実際のケースを見てみましょう。

この記事の例では、

正規表現のゼロ幅アサーションについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

はじめに

① ゼロ幅アサーションとは何ですか、なぜゼロ幅アサーションを使用する必要があるのですか

② ゼロ幅アサーションの使用方法アサーション

コンセプト

ほとんどの場所で定義されているゼロ幅アサーションは、特定のコンテンツ(ただし、これらのコンテンツは含まない)の前後のものを検索するために使用されます。つまり、b のようなアンカー機能があります。 ^ $ は、特定の条件を満たす必要がある場所 (つまりアサーション) を指定するために使用されるため、ゼロ幅アサーションとも呼ばれます。私の理解では、限られた位置で

string の前後で一致検索を実行するということです。したがって、ゼロ幅アサーションの実行プロセスは 2 つの状況に分かれます。順方向アサーションの場合、最初のステップはアサーションが真であるかどうか (つまり、特定の条件を満たすかどうか) を判断することです。 2 番目のステップでは、条件が 1 つのステップで一致する場合に次のステップに進みます。逆アサーションの場合、最初のステップは正規表現の順序で照合することです。 2 番目のステップは、逆承認に遭遇したときに逆承認が満たされるかどうかを判断することです。

肯定先読みアサーション

肯定先読みアサーションとは、文字列内の対応する位置の前を検索して一致させ、exp の前の位置を一致させるには (?=exp) を使用します。

$str="abcgwcab";
$parent='/bc(?=gw)/';
$str=preg_match($parent,$str,$match);
var_dump($match);
/**
输出结果:
int 1
array (size=1) 
  0 => string 'bc' (length=2)
  */
分析: まず、文字列「abcgwcab」内の gw 位置を見つけ、それが true であるとアサートし、次に bc と一致します。正規表現が $parent='/bc(?=gw)ca/' のように記述されている場合、一致は失敗します。

反先読みアサーション

反先読みアサーションとは何ですか? exp が続かないものと一致させるには (?!exp) を使用します。

例:

$str="abcgwcab";
$parent='/bc(?!ww)gw/';
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
输出:
int 1
array (size=1)
 0 => string 'bcgw' (length=4)
*/
分析: まず文字列に bc が含まれているかどうかを判断し、次に ww が続くかどうかを判断し、最後に gw と一致します。逆アサーションの前後に他の一致条件を追加できることがわかります。

フロントアサーションとポストアサーション

ポストアサーションとは? 文字列内の対応する位置(?の後の位置と一致した後で検索して照合することです。

$str="abcgwcab";
$parent='/(? string 'ca' (length=2)
*/
分析: 最初のステップでは、文字「abcgwcab」に gw が含まれているかどうかを確認します。返された結果は true であり、次に 2 番目のステップに進み、gw の後に ca があるかどうかを確認します。

反事後アサーション

反事後アサーションとは? 1 つは bc なので false を返します

練習問題

例 1: d+(?=abc) 文字列に 'abc' が含まれるかどうか、および文字列に 1 つ以上の数字が含まれるかどうかを判断します。前に

例 2: (? <code>d+(?=abc)
判断一个字符串中是否包含'abc',且其前面是否包含一个或多个数字

例2:(? <br>判断字符串中是否存在连续两个数字,且其后面包含一个字母

例3:d{3} (?!55)
判断字符串中是否包含连续三个数字,且三个数字后面不是55

例4:(?文字列内に 2 つの連続する数字とその後に文字があるかどうかを判断します<br>

例 3: d{3 } ( ?!55)

文字列に 3 つの連続する数字が含まれており、その 3 つの数字の後に 55 が続いていないかどうかを判断します例 4: (? どちらかを決定してください 文字列に文字と数字の組み合わせが含まれており、その前に ac が付いていませんか

要約

述語と事後アサーションの違いは何ですか? プリエンプティブ アサーションは、アサーションは他の正規表現の後にあり、アサーションはアサーションの前の正規表現であり、アサーションは他の正規表現の前にあります。正規表現

PS: ここでは、参考のために 2 つの非常に便利な正規表現ツールを提供します:

🎜🎜🎜🎜🎜

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

推奨読書:

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

正規表現検証を使用してパスワードの強度を判断し、プロンプトを表示します

以上がPHP の通常のゼロ幅アサーションの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境