正则匹配 特殊的 符号

\r  \n  \r\n:换行/回车符

\t:制表符

\d:数字(与[0-9]匹配相同)
\D:非数字(与[^0-9]匹配相同)

\w:单词字符(与[0-9a-zA-Z]匹配相同)
\W:非单词字符

\s:空格字符(与[ \t\n\r\f]相同)
\S:非空格字符
[\s\S]
+ [\s\S]* :匹配任意字符,包括换行符

 

元字符:

[] 包围一个字符类,字符类包括:[0-9] [a-z] [a-zA-Z] 等类似。 
() 包围一个字符分组或定义一个反引用
$ 匹配行尾
^ 匹配行首
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符 ?
. 匹配除换行之外的任何字符
|管道符。例如:dog|cat:表示或者匹配dog或者匹配cat

 

老是忘记:

正则默认是贪婪匹配:.*

如果想要飞贪婪匹配:.*?

 

 

php UTF-8下测试----

匹配字符串中是否包含中文: preg_match('/[\x80-\xff]/', $str);

1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f ASCII
\xa1-\xff 中文 gb2312
\x80-\xff 中文 gbk

2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韩文
\xAC00-\xD7A3 (韩文)
\u0800-\u4e00 (日文)*/




常用元字符
代码说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

常用限定符
代码/语法说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

常用反义词
代码/语法说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

posted @ 2013-07-22 21:15  群叔  阅读(1715)  评论(0编辑  收藏  举报