ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルの正規表現と PCRE 関数

PHP_PHP チュートリアルの正規表現と PCRE 関数

WBOY
WBOYオリジナル
2016-07-13 09:44:06946ブラウズ

PHP の正規表現と PCRE 関数

PCRE

PHP には、正規表現を使用する 2 つの異なる方法があります。PCRE (Perl 互換表記、preg_*) 関数と POSIX (POSIX 拡張表記、ereg_*) 関数です。幸いなことに、POSIX ファミリの関数は PHP 5.3.0 から非推奨になりました。


正規表現

区切り文字

一般的に使用される区切り文字は、スラッシュ (/)、ハッシュ記号 (#)、および否定記号 (~) です。次の例はすべて、正当な区切り文字を使用したパターンです

リーリー

終了区切り文字の後にパターン修飾子を追加できます

メタキャラクター

一部の文字には特別な意味が与えられ、単にそれ自体を表すだけではなくなります。パターン内で特別な意味を持つこのタイプのコード化された文字は 元字符 と呼ばれます。

メタキャラクター 説明
通常、文字をエスケープするために使用されます
^ ターゲットの開始位置(または複数行モードの場合は行の先頭)をアサートします
$ ターゲットの終了位置(または複数行モードの行末)をアサートします
. 改行を除く任意の文字と一致します (デフォルト)
[ 文字クラス定義の開始
] 文字クラス定義の終了
| オプションのブランチを開始する
( サブグループの開始タグ
) サブグループの終了タグ
? 数量詞として、0 または 1 の一致を意味します。量指定子の後に配置して、量指定子の貪欲な性質を変更します。 (数量詞を調べてください)
* 数量子、0 個以上の一致
+ 数量指定子、1 つ以上の一致
{ カスタマイズされた量指定子の開始タグ
} カスタマイズされた量指定子終了タグ


パターンの角括弧で囲まれた部分は「文字クラス」と呼ばれます。 文字クラス内で使用できる唯一のメタキャラクターは次のとおりです

メタキャラクター 説明
エスケープ文字
^ 最初の文字 (角括弧内) として使用される場合のみ、文字クラスの否定を示します
- 文字範囲をマークする

キャラクタークラス

角括弧内の内容は文字クラスです

いくつかの事前定義された文字クラスがあります

キャラクタークラス 説明
d 任意の 10 進数
D 10 進数以外の任意の数値
水平方向の空白文字 (PHP 5.2.4 以降)
水平以外の空白文字 (PHP 5.2.4 以降)
任意の空白文字
S 空白以外の文字
任意の垂直空白文字 (PHP 5.2.4 以降)
V 垂直以外の空白文字 (PHP 5.2.4 以降)
w 任意の単語文字
単語以外の文字

アトム

目に見える原子

としてabc

目に見えない原子

として

数量詞

と同等です と同等です
数量化子
* は {0,}
+ は {1,}
? {0,1}に相当

断言

简单的断言代码有、B、 A、 Z、z、 ^、$

前瞻断言

从当前位置向前测试

(?=) (?!)

w+(?=;)匹配一个单词紧跟着一个分号但是匹配结果不会包含分号

后瞻断言

从当前位置向后测试

(?<=) (?<!--)</code-->

<code>(?<!--foo)bar</code-->用于查找任何前面不是 ”foo” 的 ”bar”

<code>模式修饰符

<code>模式修饰符  
<code>U <code>这个修饰符逆转了量词的”贪婪”模式,使量词默认为非贪婪的
<code>i <code>大小写不敏感匹配
<code>x <code>忽略空白
<code>s <code>点号元字符匹配所有字符,包含换行符。如果没有这个修饰符,点号不匹配换行符
<code>…  

<code>PCRE 函数

<code><code><code>preg_filter &mdash; 执行一个正则表达式搜索和替换

preg_grep &mdash; 返回匹配模式的数组条目

preg_last_error &mdash; 返回最后一个PCRE正则执行产生的错误代码

preg_match_all &mdash; 执行一个全局正则表达式匹配

preg_match &mdash; 执行一个正则表达式匹配

preg_quote &mdash; 转义正则表达式字符

preg_replace_callback_array &mdash; Perform a regular expression search and replace using callbacks

preg_replace_callback &mdash; 执行一个正则表达式搜索并且使用一个回调进行替换

preg_replace &mdash; 执行一个正则表达式的搜索和替换

preg_split &mdash; 通过一个正则表达式分隔字符串
</code></code></code>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1050841.htmlTechArticlePHP中的正则表达式及PCRE函数 PCRE PHP有两种使用不同的方式来使用正则表达式:PCRE(Perl兼容表示法,preg_*)函数 和 POSIX(POSIX 扩展表示法,...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。