php preg正则表达式的组成部分
Posted cl94
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php preg正则表达式的组成部分相关的知识,希望对你有一定的参考价值。
定界符号 :
多种都可以,常用为//
原子 :
最小的一个匹配单位 (放在定界符中),在一个正则表达式中,至少要有一个原子
1,打印字符(a-z A-Z 0-9 [email protected]#$%^&*()_+...)和非打印字符
2, 代表一类字符
d :任意一个数字 [0-9]
D :任意一个非数字 [^0-9]
w :任意一个字 a-z A-Z 0-9 _ [a-zA-Z0-9_]
W :任意一个非字 [^a-zA-Z0-9_]
s :代表任意一个空白 [
fv]
S :代表任意一个非空白 [^
fv]
3,自定义原子表
[fws3] :fws3任意一个字符
[^1-9a-z] :非1-9 a-z的任意一个字符
[2-9x] :2-9或者x的任意一个字符
4,点(.) 能代表所有任意一个字符
元字符 :
不是单独使用的,是用来扩展和限定原子的 (写在定界符号中)
* 用来修饰其前面的原子可以出现0个或多个(任意次) {0,}
+ 用来修饰其前面的原子出现1次或多次 {1,}
? 用来修饰前面的原子出现0次或1次 {0,1}
{n} 用来修饰其前面的原子出现n次
{n,m} 用来修饰其前面的原子出现n到m次,包括n和m
{n,} 用来修饰其前面的原子至少出现n次,包括n
| 是或的关系 ,表示它两边的原子,只要一个出现就可以了,但是 | 优先级是最低的
^ 或 A 表示必须以什么开始,这个必须写在正则表达式的最前面
$ 或 表示必须以什么结束,这个必须写在正则表达式的最后面
单词边界
B 不是单词边界的部分
模式修正符 (单个字符)
1,模式修正符写在定界符号 ,放在右边 "/go*gle/i"
2,模式修正符号,一个字符就是一个功能,可以组合使用
作用:
修正正则表达式的解释,或扩充正则表达式的功能
i : 不区分大小写
s : 原子. 可以匹配换行符(
)
x : 去除正则表达式里的空白
U :让 原子. 变得不贪婪 (在. 后面加? 也可以取消贪婪模式,即.*? 或.+?)
其他符号
() (括号)
1,改变优先级
2, 将小原子变成大原子
3,子模式,整个表达式是一个大的模式,小括号中是每个独立的子模式
4,反向引用
$text = "2014-03-22";
$reg = ‘/d{4}(-|/)d{2}1d{2}/‘;
1引用前面括号里的模式,即第一个模式 (?:xxx)使括号失去3,4功能
(转义字符)
1,可以将有意义的字符转成没有意义的原子字符 ^ . + ‘ " ?
2, 可以将没有意义的字符转成有意义的原子 cx f
v
3, 加上 也没意义的字符,加不加都没区别 \_ q
实例
匹配网址
$reg = "/(https?|ftps?)://(www|mail|bbs).(.+?).(com|cn|net)([w-/.=?&\%]*)?/i";
匹配邮箱
$reg = "/w+([+-.]w+)*@w+([-.]w+)*/";
以上是关于php preg正则表达式的组成部分的主要内容,如果未能解决你的问题,请参考以下文章