\w   [a-z A-Z 0-9 _]
\W   \w的补集不包含小w里的
\s   空白符,包括\n\r\t\v等
\S   非空白符
\d   [0-9]
\D   非数字


[] 字符集合

[^ qxz] 不在qxz范围内
.     任意字符,不含换行
^     匹配字符串的开始
$     匹配字符串的结尾
\b    匹配单词的开始和结尾
\B    匹配单词的非边界
+     匹配前面的子表达式1次或多次
*     匹配前面的子表达式零次或多次
\?    匹配前面的字表达零次或一次
{n}   n是一个非负整数。匹配确定的n次
{n,m} m和n均为非负整数,其中n <=m
      最少匹配n次且最多匹配m次
{n,}  n是一个非负整数。至少匹配n次
|     或者
?    非贪婪模式找到一个算一个
非贪婪模式尽量往后找

后向引用 替换
加括号 
在换替换那加\1
比如
$patt = '/(\d{3})\d{4}(\d{4})/';
preg_replace($patt,'\1****\2',$str);


[\x{4e00}-\x{9fa5}]   所有汉字


preg_match_all(要搜索的模式,字符串,多维数组作为输出)   执行一个全局正则表达式匹配
preg_replace(要搜索的模式,替换成什么,要进行搜索替换的);    执行一个正则的搜索和替换  可以直接返回