検索
ホームページバックエンド開発PHPチュートリアルPHP 正規表現入門チュートリアル [翻訳]、正規表現入門チュートリアル_PHP チュートリアル

PHP正規表現入門チュートリアル[翻訳]、正規表現入門チュートリアル

マインドマップ 具体的な内容は下の画像をクリックしてご覧ください!

​ ​ はじめに ​ 開発では正規表現を頻繁に使用する必要があります。現在、JavaScript、Java、.net、php などの多くの開発言語に正規表現アプリケーションがあります。今日は、正規表現についての私の理解を共有します。 、不適切だったら教えてください! ​ 知っておくべき用語 – 次の用語についてどの程度知っていますか? ​ Δ区切り文字 Δ 文字フィールド Δ修飾子 Δ修飾子 Δキャレット Δ ワイルドカード (順方向プレビュー、逆方向プレビュー) Δ後方参照 Δ 遅延マッチング Δ コメント Δ 文字幅ゼロ ​ ポジショニング ​ 正規表現はいつ使用するのでしょうか?すべての文字操作に正規表現を使用するだけでは十分ではありません。PHP はいくつかの側面で正規表現を使用しますが、これは実際に効率に影響します。複雑なテキスト データの解析が必要な場合は、正規表現を使用することをお勧めします。 ​ メリット ​ 正規表現を使用すると、複雑な文字操作を処理する際の作業効率が向上し、コードをある程度節約できます。 ​ デメリット ​ 正規表現を使用する場合、正規表現が複雑になるとコードが複雑になり、理解しにくくなります。そのため、正規表現内にコメントを追加する必要がある場合があります。 ​ コモンモード

​ ¤ 区切り文字。区切り文字の最初と最後には通常「/」が使用されますが、「#」も使用できます。 「#」を使用するのはどのような場合ですか? 通常、文字列に「/」文字が多数含まれる場合、そのような文字は uri などの正規表現でエスケープする必要があるためです。 「/」区切り文字を使用したコードは次のとおりです。
$regex = '/^http://([w.]+)/([w]+)/([w]+).html$/i'; $str = 'http://www.youku.com/show_page/id_ABCDEFG.html'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

preg_match の $matches[0] には、パターン全体に一致する文字列が含まれます。

「#」区切り文字を使用したコードは以下の通りです

このとき、「/」はエスケープされません。
$regex = '#^http://([w.]+)/([w]+)/([w]+).html$#i'; $str = 'http://www.youku.com/show_page/id_ABCDEFG.html'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

¤ 修飾子: 正規表現の動作を変更するために使用されます。

('/^http://([w.]+)/([w]+)/([w]+).html/i') の最後の「i」は修飾子が無視することを意味します私たちがよく使うもう 1 つの文字は、スペースを無視することを意味する「x」です。

貢献コード:

$regex = '/HELLO/'; $str = 'hello word'; $matches = array();if(preg_match($regex, $str, $matches)){     echo 'No i:Valid Successful!',"n"; }if(preg_match($regex.'i', $str, $matches)){     echo 'YES i:Valid Successful!',"n"; }

¤ 文字フィールド: [w] 角括弧で展開された部分が文字フィールドです。

¤ 修飾子: [w]{3,5}、[w]*、[w]+ など、[w] の後の記号はすべて修飾子を表します。具体的な意味をご紹介します。

{3,5} は 3 ~ 5 文字を意味します。 {3,} は 3 文字を超え、{,5} は最大 5 文字、{3} は 3 文字です。

* は 0 からそれ以上を意味します

+ は 1 からそれ以上を意味します。

¤キャレット

^:

放 & gt; 文字ドメイン ([^w] など) を入力して、否定 (意味を除く) を示します - 「選択を反転」

️式の前に配置して、現在の文字から始めることができます。 (/^n/i、n で始まることを意味します)。

注意してください、私たちはしばしば「」エスケープ文字と呼びます。 「.」、「/」などの特殊記号をエスケープするために使用されます

ワイルドカード (ルックアラウンド): 特定の文字列内の特定の文字の有無をアサートします。 ​ ルックアラウンドには、先読み (前方参照 ?=) と後読み (逆引き ? 形式: 肯定的な検索: (?!) に対応する (?=) は否定的な意味を意味します 逆プレルックアップ: (?

否定的な意味:

$regex = '/(?<code class="php plain">;  /* d 前面紧跟c, d 后面紧跟e*/$str = 'abcdefgk'; $matches = array(); if(preg_match($regex, $str, $matches)){    var_dump($matches); } echo "n";
$regex = '/(?<code class="php plain">;  /* d 前面不紧跟c, d 后面不紧跟e*/ $str = 'abcdefgk'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

> 文字幅: 0 ゼロ文字コードを検証する
$regex = '/HE(?=L)LO/i'; $str = 'HELLO'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

結果は印刷できません!

$regex = '/HE(?=L)LLO/i'; $str = 'HELLO'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

結果を印刷できます!

説明: (?=L) は、HE の後に L 文字が続くことを意味します。ただし、(?=L) 自体は 1 文字を占有しないため、それ自体が 1 文字を占有する (L) とは区別する必要があります。

​ キャプチャデータ ​ タイプを指定しないグループ化は、後で使用するために取得されます。 > は、タイプがワイルドカード文字を参照していることを示します。したがって、括弧の先頭に疑問符のないもののみがキャプチャされます。

> 同じ式内の参照は後方参照と呼ばれます。 > 呼び出し形式: 番号 (1 など)。
$regex = '/^(Chuanshanjia)[ws!]+1$/';    $str = 'Chuanshanjia thank Chuanshanjia'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

> データのキャプチャを避ける 形式:(?:パターン) 利点: 有効な後方参照の数が最小限に抑えられ、コードがより明確になります。 ​ > 名前付きキャプチャ グループ 形式: (?P) 呼び出しメソッド (?P=グループ名)
$regex = '/(?P<author>chuanshanjia)[s]Is[s](?P=author)/i'</author>; $str = 'author:chuanshanjia Is chuanshanjia'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

実行結果

遅延マッチング (覚えておいてください: 2 つの操作が実行されます。以下の原則部分を参照してください)

形式:修飾子?

原則: "?": 前に修飾子がある場合、最小のデータが使用されます。たとえば、「*」には 0、「+」には 1 がかかります。{3,5} の場合は 3 がかかります。

まず次の 2 つのコードを見てください:

コード 1.

<?php $regex = '/heL*/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

結果1.

コード2

<?php $regex = '/heL*?/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

結果2

コード 3、「+」を使用します

<?php $regex = '/heL+?/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

結果3

コード 4、{3,5} を使用します

<?php $regex = '/heL{3,10}?/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

結果4

​ ​

正規表現に関するコメント ​ 形式: (?# コメント内容) 目的: 主に複雑な注釈に使用されます。 ​ 貢献コード: MYSQL データベースに接続するために使用される正規表現です。
$regex = '/     ^host=(? <code class="php plain">|     ([w!@#$%^&*()_+-]+)                       (?#用户名) |     ([w!@#$%^&*()_+-]+)                       (?#密码) (?!|)$/ix';$str = 'host=192.168.10.221|root|123456'; $matches = array();if(preg_match($regex, $str, $matches)){     var_dump($matches); }echo "n";

​ 特殊文字 ​ ​
特殊文字 説明
* 0回から複数回
+ 1回から複数回は{1,}と書くこともできます
? 0回または1回
. 改行を除くすべての単一文字と一致します
w [a-zA-Z0-9_]
空白文字 (スペース、改行、復帰) [tnr]
d [0-9]

www.bkjia.com本当http://www.bkjia.com/PHPjc/1127374.html技術記事 PHP正規表現入門チュートリアル【再版】、正規表現入門チュートリアル マインドマップ、具体的な内容は下の画像をクリックしてご覧ください! 開発でよく使う正規表現をご紹介します...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。Apr 29, 2025 am 12:42 AM

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

セッションロックの概念を説明します。セッションロックの概念を説明します。Apr 29, 2025 am 12:39 AM

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの選択肢はありますか?PHPセッションの選択肢はありますか?Apr 29, 2025 am 12:36 AM

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

PHPのコンテキストで「セッションハイジャック」という用語を定義します。PHPのコンテキストで「セッションハイジャック」という用語を定義します。Apr 29, 2025 am 12:33 AM

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

PHPの完全な形式は何ですか?PHPの完全な形式は何ですか?Apr 28, 2025 pm 04:58 PM

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPはフォームデータをどのように処理しますか?PHPはフォームデータをどのように処理しますか?Apr 28, 2025 pm 04:57 PM

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

PHPとASP.NETの違いは何ですか?PHPとASP.NETの違いは何ですか?Apr 28, 2025 pm 04:56 PM

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPはケースに敏感な言語ですか?PHPはケースに敏感な言語ですか?Apr 28, 2025 pm 04:55 PM

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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

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

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境