PHPの正規表現におけるメタキャラクタの詳しい説明(コード例)
この記事の目標:
1. 正規表現のメタキャラクターの定義を理解する
2. 基本的な正規表現でのメタキャラクターの使い方をマスターする
(1) 正規表現のメタキャラクターの定義を理解する
特別な意味を持つ正規表現文字一般的なメタキャラクターは次のとおりです:
、^、$、[,]、|、(,)、?*、+、{、}
(2)、基本的な正規表現でのメタキャラクターの使い方をマスターしましょう
概要:
1. 通常、文字をエスケープするために使用されます
2. ^ はターゲットの開始位置 (または複数行モードでは行の先頭) を表します
3. $ はターゲットの終了位置を表します(または複数行モードの行の終わり)
4. デフォルトでは、改行文字
を除く任意の文字と一致します。
8、(サブグループ
9 の開始マークを表します) はサブグループ
10 の終了マークを表します、?: 量指定子として、0 または 1 の一致を示します。
11. *: 数量詞として、0 個以上の一致を意味します。
13. {: カスタム数量詞の開始タグを意味します。 }: カスタマイズを意味します。量指定子の終了マークです
以下のコードは、各要約を練習するために 1 つずつ使用されており、理解が促進されます
1. 一般的に文字をエスケープするために使用されます
具体的なコードは次のとおりです:
<?php $p = "/A\/B\/C/";//包含A/B/C字符串 $str = "A/B/C"; if (preg_match($p, $str,$math)) { echo '该字符串符合这个规则:/A\/B\/C/<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则:/A\/B\/C/'; } ?>
一致する結果は次のとおりです: Array ([0] => A/B/C)
2, ^ターゲットの開始位置を表します (または複数行モードでは、以下が行の先頭です)実行結果は次のとおりです:
具体的なコードは次のとおりです:<?php $p = "/^A/m";//以A开始 $str = "Abc \nAcc \nAdd"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则:<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー
文字列はこれに準拠しますルール:
一致結果は次のとおりです: Array ( [0] => Array ( [0] => A [1] => A [2] => A ) )3 $ は終わりを表します。ターゲットの位置 (複数行モードでは行末)実行結果は次のとおりです:
具体的なコードは次のとおりです:<?php $p = "/A$/m";//以A结尾的字符串 $str = "nihao A\n this is a word A"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则:<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー
文字列はこのルールに準拠しています:
一致する結果は次のとおりです: Array ( [0] => Array ( [0] => A [1] => A ) )4. デフォルト この場合、改行文字を除く任意の文字が一致します
は次のとおりです:
<?php $p = "/A.B/";//查找A(任何字符除了换行符外)B的字符串 $str = "A,B A-B A\nB"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>
実行結果は次のとおりです:
文字列はこのルールに準拠しています
一致する結果は次のとおりです: Array ( [0] => Array ( [0] => A,B [1] = > A-B ) )5、[定義開始文字を表します具体的なコードは次のとおりです:
6、]は定義終了文字を表します
<?php $p = "/[0-9]A/";//包含小于9的一个数字和A $str = "0A 1A 2A SA"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>
このルール
一致する結果は次のとおりです: Array ( [0] => Array ( [0] => 0A [1] => 1A [2] => 2A ) )7, |ブランチ実行結果は次のとおりです:
具体的なコードは次のとおりです:<?php $p = "/[0-9]A|[0-9]B/";//查找小于9的一个数字和A相连的字符串或者查找 //小于9的一个数字和B相连的字符串 $str = "0A 1A 2B 3C"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー
文字列はこのルールに準拠しています
一致する結果は次のとおりです: Array ( [0] => Array ( [0] => 0A [ 1] => 1A [2] => 2B ) )8, ( はサブグループの開始マークを表します実行結果は次のとおりです: 文字列はこのルールに準拠します
9, ) はサブグループの終了マークを表します<?php $p = "/([0-9])-([0-9])/"; $str = "1-3 2-4 3-s"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー
一致する結果は次のとおりです: Array ( [0] => Array ( [0] => 1-3 [1] => 2-4 ) [1] => Array ( [0 ] => 1 [1] => 2 ) [2] => 配列 ( [0] => 3 [1] => 4 ) )
10。 、0回または1試合を意味します。文字列はこのルールに準拠しています具体的なコードは次のとおりです:
実行結果は次のとおりです:<?php $p = "/(A[0-9])?H/";//查找H字符 因为?表示出现0或者1次 $str = "A1AH AsH BH"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー
一致する結果は次のとおりです: Array ( [0] => Array ( [0] => H [1] => H [2] => H ) [1] => 配列 ( [0] => [2] => )
11. : 数量詞として、0 回または複数の一致を意味します文字列はこのルールに準拠します<?php $p = "/(A[0-9])*H/";//查找H字符 因为*表示出现0或者多次所以和?的结果不同 $str = "A1AH A1H A2H A2A2H"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー実行結果は次のとおりです:
一致結果は次のとおりです: Array ( [0] => Array ( [0] =>) ; H [1] => A1H [2] => A2A2H ) [1] => 配列 ([0] => A1 [2] => ; A2 [3] => A2 ) )
12, +: 1 つ以上の一致を示す数量子として一致結果は次のようになります: Array ( [0] => Array ( [0] => A1H [1] => A2H [2] => A2A2H ) [1] => Array ( [0] => A1 [1] => A2 [ 2] => A2 ) )具体的なコードは次のとおりです:
実行結果は次のとおりです:文字列はこのルールに準拠します<?php $p = "/(A[0-9])+H/";//查找H字符 前面至少包含A和一个<9的数字相连 $str = "A1AH A1H A2H A2A2H"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー
13, { : カスタム量指定子の開始タグを表します
14, } : カスタム量指定子の終了タグを表しますカスタム量指定子
具体的なコードは次のとおりです:
実行結果は次のとおりです: この文字列はこのルールに準拠しています<?php $p = "/d{2}/";//查找2个d的字符串 $str = "dd和dd和ddd"; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则<br/>'; echo "匹配结果为:"; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>ログイン後にコピー一致する結果は次のとおりです: Array ( [0] => Array ( [0] = > dd [1] => dd [2] => dd ) )
1. 正規表現におけるメタキャラクターの定義を理解する2.
以上がPHPの正規表現におけるメタキャラクタの詳しい説明(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
