php 正则表达式

来源:互联网 发布:windows xp系统重装 编辑:程序博客网 时间:2024/06/03 21:37

原子

可见原子

  Unicode编码表中用键盘输出后肉眼可见的字符        

比如:标点符号 英文字母数字 汉字阿拉伯文 数理化公式符号 等等。。。

//如果是文字匹配先转换编码
//如果是运算符匹配 我们要加转移符 \ 斜杠 如果我们想匹配\这个符号 我们要加在加个斜杠 \两斜杠匹配一个\

不可见原子

Unicode编码表中用键盘输出后肉眼不可见的字符 比如:换行符\n 回车\r 制表符\t 其他不可见字符 等等。。。。

元字符

元字符之原子的筛选方式

| 匹配两个或者多个分支选择 或的意思

PHP | php 表示我们想匹配大写的PHP或小写的php

[] 匹配方括号中的任意一个原子

[0-9a-z] 匹配0-9 之间的的数字 a-z之间的小写单词

[^] 匹配除方括号中的原子之外的任意字符

[^9] 除9之外的原子全部匹配 ^符号的位置绝对不能错
如果我们这样写的话 [01^2] 表示我们要匹配的是中括号中全部原子
也就是 01^2 这4个原子

元字符之原子的集合

\d 匹配任意一个十进制数字[0-9]

\D 匹配任意一个非十进制的数字[^0-9]

\S 匹配一个可见原子 即[^\f\n\r\t\v]

\w 匹配任意一个数字、字母、下划线 即[^0-9a-zA-Z_]

\W 匹配任意一个非数字、字母、下划线 即[^0-9a-zA-Z_]

量词

{n} 表示 其前面的原子恰好出现n次

[9]{3} 表示匹配9连续出现3次

{n,} 表示其前面的原子最少出现n次

[\w]{12,} 表示匹配数字或字母或下划线连续出现12次

{n,m} 表示前面的原子最少出现n次 最多出现m次

[9]{3,5} 匹配表示该原子连续这最少3次最多5次

* 匹配0次1次或者多次其之前的原子 即{0,}

+ 匹配一次或者多次其之前的原子 即{1,}

\d+ 表示匹配从连续1次2次无穷大次的数字

? 匹配0次或者1次其之前的原子 即{0,1}

边界控制与模式单元

^匹配字符串开始的位置

$ 匹配字符串结尾的位置

如果我们有这样一组单词

duang~

我们开始匹配 ^duang~$ 这样表示我们必须以d开头以波浪线结尾才能匹配到

() 匹配其中的整体为一个原子

需求:Duang~ duang~
我们之前要这样匹配 Duang~ | duang~或者[Dd]uang~
现在我们用模式单元匹配 (D|d)uang~ 小括号里的会当做一个原子来看待 这里表示匹配一个大写的D或者小写的d

模式修正

贪婪匹配 匹配结果存在歧义时取其长 php中默认是贪婪模式

懒惰匹配 匹配结果存在歧义时取其短 在正则表达式后面加\U就会切换到懒惰模式

U 懒惰匹配

u 贪婪匹配

i 忽略英文字母大小写

x 忽略空白

s 让元字符 . 匹配包括换行符在内的所有字符

0 0