正则表达式
界定符
表示一个正则表达式的开始和结束
一般在php中 使用 / 如 /[0-9]/
或者#如#[0-9]#
作为正则表达式的界定符
原子
正则表达式的最小匹配单位,是unicode中的一个字符
- 不可见原子
- 空格
- 回车 \r
- 换行符 \n
- 制表符 \t
元字符
- | 匹配两个或者多个分支选择
- [ ] 匹配方括号中的任意一个字符
- [^ ] 匹配除方括号内字符的任意字符
- 原子集合
- . 匹配除换行符之外的任意字符
- \d 匹配任意一个十进制数字,即[0-9]
- \D 匹配任意一个非十进制数字,即[^0-9]
- \s 匹配一个不可见原子
- \S 匹配一个可见原子
- \w 匹配一个数字字母下划线
- \W 匹配一个非数字字母下划线
量词(连续出现)
- {n} 表示其前面的原子恰好出现n次
- {n,} 表示其前面的原子至少出现n次
- {n,m} 表示其其前面的原子出现n到m次
- * 匹配0次1次或多次其之前的原子,即{0,}
- + 匹配1次或多次其之前的原子,即{1,}
- ? 匹配0次或者一次其之前的原子,即{0,1}
边界控制
- ^ 限制字符串以其之后的原子开头
- $ 限制字符串以其之前的原子结束
/^Duang~$/
匹配以D开头并且以~结尾
模式单元
- () 把括号里面的正则表达式当做一个原子来看待
修正模式
-
U–懒惰匹配
当匹配的内容有歧义时,贪婪匹配取最长的,懒惰模式取最短的
1
2
3
4
5
6
7$pattern = '/imooc.+123/U';//'前的U代表修正模式是懒惰模式,如果没有U默认为贪婪模式
$subject = 'I love imooc__123123123123123123';
$matches = array();
preg_match($pattern,$subject,$matches);
//打印结果imooc__123
//去掉U 打印结果imooc__123123123123123123 -
i-忽略大小写
-
x-忽略空白
-
s–让元字符. 匹配包括换行符在内的所有字符