background image

身。
u(PCRE_UTF8):
模式字符串被当成 UTF-8。

逻辑区隔:

POSIX 兼容正则和 PERL 兼容正则的逻辑区隔符号作用和使用方法完全一致:
[]:包含任选一操作的相关信息。
{}:包含匹配次数的相关信息。
():包含一个逻辑区间的相关信息,可被用来进行引用操作。
|

“ ”

:表示 或 ,[ab]和 a|b 是等价的。

元字符与 []”相关:
有两组不同的元字符:一种是模式中除了方括号内都能被识别的,还有一种是在方括号
“[]”内被识别的。

POSIX 兼容正则和 PERL

兼容正则 []

”“

之外 一致 的元字符:

\ 有数种用途的通用转义符
^ 匹配字符串的开头
$ 匹配字符串的结尾
? 匹配 0 或者 1

 

匹配 0 个或多个前面指定类型的字符

 

匹配 1 个或多个前面指定类型的字符

POSIX 兼容正则和 PERL

兼容正则 []

”“

之外 不一致 的元字符:

. PERL 兼容正则匹配除了换行符外的任意一个字符
. POSIX 兼容正则匹配任意一个字符

POSIX 兼容正则和 PERL

兼容正则 []

”“

之内 一致 的元字符:

\ 有数种用途的通用转义符
^ 取反字符,但仅当其为第一个字符时有效
- 指定字符 ASCII 范围,仔细研究 ASCII 码,你会发现[W-c]等价于[WXYZ\\^_`abc]

POSIX 兼容正则和 PERL

兼容正则 []

”“

之内 不一致 的元字符:

- POSIX 兼容正则中[a-c-e]的指定会抛出错误。
- PERL 兼容正则中[a-c-e]的指定等价于[a-e]。

匹配次数与 {}”相关:

POSIX 兼容正则和 PERL 兼容正则在匹配次数方面完全一致:
{2}:表示匹配前面的字符 2 次
{2,}:表示匹配前面的字符 2 次或多次,默认都是贪婪(尽可能多)的匹配
{2,4}:表示匹配前面的字符 2 次或 4 次

逻辑区间与 ()”相关:

使用()包含起来的区域是一个逻辑区间,逻辑区间的主要作用是体现出一些字符出现的
逻辑次序,另一个用处就是可以用来引用(可以将此区间内的值引用给一个变量)。后一
个作用比较奇特:
<?php
$str = "http://www.163.com/";
// POSIX 兼容正则: