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/'; } ?>実行結果は次のとおりです: 文字列はこのルールに準拠しています: /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 ) )
2.
以上がPHPの正規表現におけるメタキャラクタの詳しい説明(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。