php正则表达式

1.元字符(特殊字符)
*	匹配前面的字符零次或多次 	等同于 {0,}
+	匹配前面的字符一次或多次 	等同于 {1,}
?	匹配前面的字符零次或一次	等同于 {0,1}
|	匹配两个或多个选择
^ 	匹配字符串的开始位置
$ 	匹配字符串结束位置	
\b	匹配单词的边界(如空格、横杠,但不包括下划线)
\B	匹配除单词边界以外的部分
[]	匹配方括号中的任一字符
[^]	匹配除方括号中的字符外的任何字符
{m}	m 是一个非负整数。匹配确定的 m 次
{m,}	m 是一个非负整数。至少匹配m 次 
{m,n}	最少匹配 m次且最多匹配 n次 
()	表示一个整体
.	匹配除换行之外的任何一个字符

2.预定义元字符
由于某些模式会反复用到,所以可以使用以下预定义类;
\d	匹配一个数字;等价于[0-9]

\D	匹配除数字以外任何一个字符;等价于[^0-9]

\w	匹配一个英文字母、数字或下划线;等价于[0-9a-zA-Z_]

\W	匹配除英文字母、数字和下划线以外任何一个字符;等价于[^0-9a-zA-Z_]

\s	匹配一个空白字符;等价于[\f\n\r\t\v]

\S	匹配除空白字符以外任何一个字符;等价于[^\f\n\r\t\v]

3.匹配字符的开始和结束在某些情况下,需要对匹配范围进行限定,以获得更准确的匹配结果;

"^"置于字符串的开始确保模式匹配出现在字符串首端;

"$"置于字符串的结束,确保模式匹配出现字符串尾端。

 如果不加边界限制元字符,将获得更多的匹配结果。

4.匹配任意字符用"."匹配除换行符外任何一个字符

例:
$res = preg_match('/./', "something"); 
var_dump($res);通常可以使用".*"组合来

匹配除换行符外的任何字符

5.匹配包含某个范围的字符
用"[start-end]"匹配包含某个范围的字符
[a-z]		匹配所有的小写字母
[A-Z]		匹配所有的大写字母
[a-zA-Z]	匹配所有的字母
[0-9]		匹配所有的数字
[0-9\.\-]	匹配所有的数字,句号和减号 
[\x{4e00}-\x{9fa5}]    匹配所有的中文汉字

6.重复匹配
正则表达式中有一些用于重复匹配的元字符:"?"、"*"、"+"。他们主要的区别是重复匹配的次数不同。

"?"	   匹配前面的字符零次或一次	等同于 {0,1} 
"*"	   匹配前面的字符零次或多次 	等同于 {0,}
"+"	   匹配前面的字符一次或多次 	等同于 {1,}
"{m}"	   匹配确定的 m 次。 m 是一个非负整数;
"{m,n}"   最少匹配 m 次且最多匹配 n 次。 m 和 n 均为非负整数,其中m <= n;
"{m,}"	   至少匹配m 次。 m 是一个非负整数;

7.匹配两个或多个选择
用圆括号"(word1|word2|…)"定义包含word1、word2、…的任意字符串的规则

8.模式修正符
i		在和模式进行匹配时不区分大小写

m		将字符串视为多行

s		模式中的圆点元字符 “ . “将匹配所有的字符,包括换行符

x		模式中的空白忽略不计,除非已经转义	

U		取消贪婪匹配模式修正符在正则表达式定界符之外使用。




Copyright © 2016-2019 709173702@qq.com 版权所有  ICP证粤ICP备16117826号-1
联系邮箱:709173702@qq.com