身。
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 兼容正则: