正则表达式
描述了一类字符串的特征,通过这个特征与特定的函数配合,对其他的字符串进行匹配、查找、替换及分割操作
定界符
- 我们一般习惯使用正斜线 ‘/’ 作为定界的字符
- 当然除了字母、数字和反斜线以外的字符都可以作为定界符,比如:#、!、{}、| 等都是可以的
- 定界符放在正则表达式的起始位置,前后一致
普通字符
- 比如:a~z、A~Z、0~9、双引号、单引号,它们没有特殊的含义
元字符
- 指的是在正则表达式中有特殊含义的字符
元字符 | 描述 |
---|---|
\d | 匹配任意一个十进制数字,等价于[0-9] |
\D | 匹配任意一个除十进制数字以外的字符,等价于[^0-9] |
\s | 匹配任意一个空白字符,比如换页符、换行符、回车符、制表符、垂直制表符 |
\S | 匹配除空白字符以外的任何一个字符 |
\w | 匹配任意一个数字或字母或下划线 |
\W | 匹配任意一个除数字或字母或下划线以外的字符 |
. | 匹配任意一个除换行符以外的字符 |
* | 匹配0次、或1次、或多次其前面的字符 |
+ | 匹配1次、或多次其前面的字符 |
? | 匹配0次、或1次其前面的字符 |
{n} | 表示其前面字符恰好出现n次 |
{n,} | 表示其前面字符出现大于等于n次 |
{n,m} | 表示其前面字符至少出现n次,最多出现m次 |
^ 或\A | 匹配字符在开始位置 |
$ 或\Z | 匹配字符在结束位置 |
| | 匹配两个或多个模式 |
[ ] | 匹配方括号中的任意一个字符 |
[^] | 匹配除方括号中字符以外的任意一个字符 |
() | 将括号中作为一个整体以便将其中的内容获取到 |
模式修正符
模式修正符是在正则表达式的定界符之后使用的,可以调整正则表达式的解释,扩展正则表达式的匹配、替换等操作时的某些功能,增强正则表达式的处理能力
修正符 | |
---|---|
i | 在和模式进行匹配时不区分大小写 |
m | 多行匹配,如果目标字符串中没有 ‘\n’ 字符,或者模式中没有出现 ^ 或 $,设置这个修饰符不产生任何影响;使用条件:目标字符串中必须包含 ‘\n’,以及必须要出现 ^ 或者 $ |
s | 如果设定了此修正符,那么 . 将匹配所有的字符包括换行符 |
U | 禁止贪婪匹配 |
与正则表达式配合的函数
preg_match(正则表达式,字符串,数组)
:执行一次正则表达式匹配preg_match_all(正则表达式,字符串,数组)
:执行全局正则表达式匹配preg_replace(正则表达式,要替换成的字符串,字符串)
:执行一个正则表达式搜索和替换