1,正则表达式的作用:分割、查找、匹配、替换字符串
2,分隔符:正斜线(/),hash符号(#),以及取反符号(~)
3,通用原子:\d(0-9), \D(除了0~9),\w(数字字母下划线), \W(除了数字字母下划线), \s(空格),\S(除了空格)
4,元字符: . 除了换行符
* 出现0,1,多次
^ 开头
$ 结尾
?o,或者1次
+ 1次,多次
{n} 出现n次
{n,} >= n次
{n,m} n次到m次
[] 集合 [abc]匹配a或b或c
() 整体
[^] 取反
| 或者
[-] 范围,如[0-9]
5,模式修正符:i (不区分大小写)
m (根据每一行分别匹配)
U (取消贪婪模式)
x (忽略空白符)
A (必须以这个模式开头)
u (中文匹配时用到)
后向引用:
$str = '<b>abc</b>';
$pattern = '/<b>(.*)<\/b>/;
preg_replace_all($pattern, '\\1', $str);
\1匹配括号里面的内容
或者 preg_match($pattern, $str, $match)也会只返回口号里面的内容
贪婪模式:
$str = '<b>abc</b> <b>bcd</b>';
$pattern = '/<b>.*?<\/b>/;
preg_replace_all($pattern, '\\1', $str);
?可以取消贪婪模式
或者 $pattern = '/<b>.*<\/b>/U; 也可以取消贪婪模式
6,正则表达式的PCRE函数:preg_match()、preg_match_all(),preg_replace(),preg_split()
中文匹配:UTF-8汉字编码范围是 0x4e00-ox9fa5
$pattern = "/[\x{4e00}-\x{9fa5}]/u";