ホームページ  >  記事  >  php教程  >  PHP の正規表現と PCRE 関数

PHP の正規表現と PCRE 関数

WBOY
WBOYオリジナル
2016-06-21 08:46:231178ブラウズ

PCRE

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


正規表現

区切り文字

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

を使用しています。
<code>/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%
{this is a pattern}
</code>

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

メタキャラクター

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

元字符 描述
  一般用于转义字符
^ 断言目标的开始位置(或在多行模式下是行首)
$ 断言目标的结束位置(或在多行模式下是行尾)
. 匹配除换行符外的任何字符(默认)
[ 开始字符类定义
] 结束字符类定义
开始一个可选分支
( 子组的开始标记
) 子组的结束标记
? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)
* 量词,0 次或多次匹配
+ 量词,1 次或多次匹配
{ 自定义量词开始标记
} 自定义量词结束标记


パターンの角括弧で囲まれた部分は「文字クラス」と呼ばれます。 文字クラス

内では、次のメタキャラクターのみが使用できます。
元字符 描述
  转义字符
^ 仅在作为第一个字符(方括号内)时,表明字符类取反
- 标记字符范围

キャラクタークラス

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

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

字符类 描述
d 任意十进制数字
D 任意非十进制数字
h 任意水平空白字符(since PHP 5.2.4)
H 任意非水平空白字符(since PHP 5.2.4)
s 任意空白字符
S 任意非空白字符
任意垂直空白字符(since PHP 5.2.4)
V 任意非垂直空白字符(since PHP 5.2.4)
w 任意单词字符
W 任意非单词字符

アトミック

可視原子

としてabc

目に見えない原子

として

数量子

量词  
* 等价于 {0,}
+ 等价于 {1,}
? 等价于 {0,1}

断言

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

前瞻断言

从当前位置向前测试

(?=) (?!)

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

后瞻断言

从当前位置向后测试

(?<=) (?

<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>

 



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。