正则表达式是php初学者所要面对的较为困难的一部分,时间一长往往会将各类符号的作用忘记。但是经过系统的总结后,你会发现记忆的难度其实并不是很大。

Perl是较为常见的兼容正则表达式函数,一般形式为(preg_)这也是本文主要介绍的。


学习正则无非学习 1.模式的编写
2.正则+函数 = 强大的字符处理功能。

我们先了解基础知识。
1.原子,听名字就知道为字符串的最小单位。它包括两种:
①可打印的字符,就是一般无特殊含义的字符。
②不可打印的字符,代表范围:
\d:表示任意一个十进制数字
\D:表示任意一个数字之外的字符
\s:表示任意一个空白字符
\S:表示任意一个非空白字符
\w:a-zA-Z0-9
\W:除了a-zA-Z0-9之外的任意字符
(小提示:一般也就这几个,记起来很容易,只要记得每个为其英文的缩写(d为digital、s为word、s为space其含义也十分明了啦),且大写的总是会和小写的作对)

2.自定义原子表([])
[]字符类,匹配其中任何一个原子,一个方括号仅匹配一个字符
与其相反的[^]排除字符,排除方括号中任何一个字符
[-]表示一定范围,例如:[a-z]表示a到z中任意一个字符

再了解几种常见字符。

1.定界符(确定是正则而不是普通的字符串的符号)(| / ......)
定义:除字母、数字、正斜线\之外的任何符号都为定界符号,一般用反斜线(/)表示
形如:/tm/
2.点号字符(.)
可以匹配换行符外的任意一个字符。
一个题目可以很好的诠释这种效果,写出几个以s开头,t结尾的单词。
/^s**t$/ /^s*t/ ......
3.限定符(?* + {n,m})
? :匹配前面字符0或1次
+   :匹配前面字符1或多次
*   : 匹配前面字符0或多次
{n} : 匹配前面字符n次
{n,} : 匹配前面字符最少n次
{n,m} : 匹配前面字符最少n次,最多m次
4.选择字符(|)
例如:/cat|dog/ 匹配猫或者狗
5.括号字符(())
()的功能有很多,其中有和函数一起使用时所产生的新的功能
1.提高优先级
2.作为大原子使用
3.最为子模式使用(\1取第一个子模式,\2取第二个模式...)
"\\1" '\1'