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

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

Jul 12, 2016 am 08:52 AM
正規表現

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 で始まることを意味します)。

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

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

否定的な意味:

$regex = '/(?<=c)d(?=e)/'; /* d 前面紧跟c, d 后面紧跟e*/$str = 'abcdefgk'; $matches = array(); if(preg_match($regex, $str, $matches)){ var_dump($matches); } echo "n";
$regex = '/(?<!c)d(?!e)/'; /* 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'<code class="php plain">; $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=(?<!.)([d.]+)(?!.)                 (?#主机地址) |     ([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 までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP 正規表現の検証: 数値形式の検出 PHP 正規表現の検証: 数値形式の検出 Mar 21, 2024 am 09:45 AM

PHP 正規表現の検証: 数値形式の検出 PHP プログラムを作成する場合、ユーザーが入力したデータを検証する必要がよくあります。一般的な検証の 1 つは、データが指定された数値形式に準拠しているかどうかを確認することです。 PHP では、正規表現を使用してこの種の検証を行うことができます。この記事では、PHP 正規表現を使用して数値形式を検証する方法を紹介し、具体的なコード例を示します。まず、一般的な数値形式の検証要件を見てみましょう。 整数: 0 ~ 9 の数字のみが含まれ、プラスまたはマイナス記号で始めることができ、小数点は含まれません。浮動小数点

正規表現を使用して Golang でメールアドレスを検証するにはどうすればよいですか? 正規表現を使用して Golang でメールアドレスを検証するにはどうすればよいですか? May 31, 2024 pm 01:04 PM

正規表現を使用して Golang で電子メール アドレスを検証するには、次の手順に従います。 regexp.MustCompile を使用して、有効な電子メール アドレス形式と一致する正規表現パターンを作成します。 MatchString 関数を使用して、文字列がパターンと一致するかどうかを確認します。このパターンは、次のようなほとんどの有効な電子メール アドレス形式をカバーします。 ローカル ユーザー名には文字、数字、および特殊文字を含めることができます: !.#$%&'*+/=?^_{|}~-` ドメイン名には少なくとも次の文字が含まれている必要があります。 1 文字の後に文字、数字、またはハイフンを続けます。トップレベル ドメイン (TLD) は 63 文字を超えることはできません。

Go で正規表現を使用してタイムスタンプを照合するにはどうすればよいですか? Go で正規表現を使用してタイムスタンプを照合するにはどうすればよいですか? Jun 02, 2024 am 09:00 AM

Go では、正規表現を使用してタイムスタンプを照合できます。ISO8601 タイムスタンプの照合に使用されるような正規表現文字列をコンパイルします。 ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。 regexp.MatchString 関数を使用して、文字列が正規表現と一致するかどうかを確認します。

Go言語の正規表現と文字列処理をマスターする Go言語の正規表現と文字列処理をマスターする Nov 30, 2023 am 09:54 AM

最新のプログラミング言語として、Go 言語は強力な正規表現と文字列処理関数を提供し、開発者が文字列データをより効率的に処理できるようにします。開発者にとって、Go 言語での正規表現と文字列処理を習得することは非常に重要です。この記事では、Go 言語の正規表現の基本概念と使い方、Go 言語を使用して文字列を処理する方法を詳しく紹介します。 1. 正規表現 正規表現は文字列のパターンを記述するためのツールであり、文字列の照合、検索、置換などの操作を簡単に実装できます。

PHP 正規表現: 厳密な一致とあいまいな包含の除外 PHP 正規表現: 厳密な一致とあいまいな包含の除外 Feb 28, 2024 pm 01:03 PM

PHP 正規表現: 完全一致と除外 ファジー包含正規表現は、プログラマがテキストを処理する際に効率的な検索、置換、フィルタリングを実行できる強力なテキスト マッチング ツールです。 PHP では、正規表現は文字列処理やデータ マッチングにも広く使用されています。この記事では、PHP で完全一致を実行し、あいまい包含操作を除外する方法に焦点を当て、具体的なコード例を使用して説明します。完全一致 完全一致とは、バリエーションや余分な単語ではなく、正確な条件を満たす文字列のみと一致することを意味します。

Goで正規表現を使用してパスワードを確認するにはどうすればよいですか? Goで正規表現を使用してパスワードを確認するにはどうすればよいですか? Jun 02, 2024 pm 07:31 PM

Go で正規表現を使用してパスワードを検証する方法は次のとおりです。 パスワードの最小要件 (小文字、大文字、数字、特殊文字を含む少なくとも 8 文字) を満たす正規表現パターンを定義します。 regexp パッケージの MustCompile 関数を使用して正規表現パターンをコンパイルします。 MatchString メソッドを使用して、入力文字列が正規表現パターンと一致するかどうかをテストします。

漢字フィルタリング: PHP 正規表現の練習 漢字フィルタリング: PHP 正規表現の練習 Mar 24, 2024 pm 04:48 PM

PHP は広く使用されているプログラミング言語であり、特に Web 開発の分野で人気があります。 Web開発の過程では、ユーザーが入力したテキストをフィルタリングして検証する必要がよくありますが、その中でも文字フィルタリングは非常に重要な操作です。この記事では、PHP で正規表現を使用して漢字フィルタリングを実装する方法と、具体的なコード例を紹介します。まず最初に、Unicode の漢字の範囲は u4e00 から u9fa5 までである、つまりすべての漢字がこの範囲内にあることを明確にする必要があります。

正規表現のワイルドカードとは何ですか? 正規表現のワイルドカードとは何ですか? Nov 17, 2023 pm 01:40 PM

正規表現のワイルドカードには、「.」、「*」、「+」、「?」、「^」、「$」、「[]」、「[^]」、「[a-z]」、「[A-Z]」が含まれます。 、"[0-9]"、"\d"、"\D"、"\w"、"\W"、"\s&quo

See all articles