修正模式: http://www.phpx.com/man/zh/pcre.pattern.modifiers.html
模式语法: http://www.phpx.com/man/zh/pcre.pattern.syntax.html
正则表达式的特殊字符包括 . // + * ? [ ^ ] $ ( ) { } = ! < > | :。
/ 有数种用途的通用转义符^ 断言目标的开头(或在多行模式下行的开头,即紧随一换行符之后)
$ 断言目标的结尾(或在多行模式下行的结尾,即紧随一换行符之前)
. 匹配除了换行符外的任意一个字符(默认情况下)
[ 字符类定义开始
] 字符类定义结束
| 开始一个多选一的分支
( 子模式开始
) 子模式结束
? 扩展 ( 的含义,也是 0 或 1 数量限定符,以及数量限定符最小值
* 匹配 0 个或多个的数量限定符
+ 匹配 1 个或多个的数量限定符
{ 最少/最多数量限定开始
} 最少/最多数量限定结束
模式中方括号内的部分称为“字符类”。字符类中可用的元字符为:
/ 通用转义字符
^ 排除字符类,但仅当其为第一个字符时有效
- 指出字符范围
] 结束字符类
一些特殊的字符:
-
/a alarm,即 BEL 字符(0x07)
/cx "control-x",其中 x 是任意字符
/e escape(0x1B)
/f 换页符 formfeed(0x0C)
/n 换行符 newline(0x0A)
/r 回车符 carriage return(0x0D)
/t 制表符 tab(0x09)
/xhh 十六进制代码为 hh 的字符
/ddd 八进制代码为 ddd 的字符,或 backreference /040 另一种表示空格的方法
011 总是表示制表符 tab
/d 任一十进制数字 /D 任一非十进制数的字符 /s 任一空白字符 /S 任一非空白字符 /w 任一“字”的字符 /W 任一“非字”的字符
正则表达式中的 逆向引用方式://1 或 /${1}
$string = "April 15, 2003";
$pattern = "/(/w+) (/d+), (/d+)/i";
$replacement = "/${1}1,/$3";
print preg_replace($pattern, $replacement, $string);
/* Output
======
April1,2003
*/
?>