正则表达式 Regular Express
标签(空格分隔): 正则表达式 PHP
认识正则表达式
正则表达式就是用某种模式去匹配一类字符串的一种公式。通俗来讲,就是一系列匹配规则。
PHP中的正则函数
- PCRE库提供的函数, 以
preg_为前缀命名。 - POSIX扩展提供的函数,以
ereg_为前缀命名。
组成
分隔符 表达式 修饰符
- 分隔符:可以是除了字母、数字、反斜线及空白符以外的任何字符
- 表达式:由一些特殊字符和非特殊字符组成。
- 修饰符:用于开启或者关闭某种功能。
元字符(Meta-Characters)
是正则表达式中具有特殊意义的字符
常用元字符
| 元字符 | 描述 |
|---|---|
| . | 匹配除换行符以外的任意字符 |
| \w | 匹配字母、数字或下划线或汉字 |
| \s | 匹配任意空白符 |
| \d | 匹配数字 |
| \b | 匹配单词的开始或结束 |
| ^ | 匹配字符的开始 |
| $ | 匹配字符的结束 |
| - | 表示范围 |
| [ ] | 匹配括号中的任意一个字符 |
| *、+、? | 量词 |
量词
| 限定符 | 描述 |
|---|---|
| * | 重复0次或更多次 |
| + | 重复1次或更多次 |
| ? | 重复0次或1次 |
| {n} | 重复n次 |
| {n,} | 至少重复n次 |
| {n,m} | 重复n次到m次 |
正则表达式匹配规则
- 字符组
[0-9] - 转义
\\\{\} - 反义
| 字符 | 描述 |
|---|---|
| \W | 匹配任意不是字母、数字、下划线、汉字的字符 |
| \S | 匹配任意不是空白的字符 |
| \D | 匹配任意非数字的字符 |
| \B | 匹配不是单词开头或结束的位置 |
| [^x] | 匹配除x以外的任意字符 |
4. 分支 就是存在多种可能的匹配情况。[ch]at=(c|h)at
5. 分组
| 类别 | 代码/语法 | 描述 |
|---|---|---|
| 捕获 | (exp) | 匹配exp,并捕获文本到自动命名的组里 |
(?<name>exp) | 匹配exp,并捕获文本到名称为name的组里,也可写成(?’name’exp) | |
| (?:exp) | 匹配exp,不捕获匹配的文本,也不给次分组分配组号 | |
| 零宽断言 | (?=exp) | 匹配exp前面的位置 |
| (?<=exp) | 匹配exp后面的位置 | |
| (?!exp) | 匹配后面跟的不是exp的位置 | |
(?<!exp) | 匹配前面不是exp的位置 |

本文介绍了正则表达式的概念及其在PHP中的应用,详细解释了正则表达式的组成元素,包括分隔符、表达式、修饰符等,并列举了常用的元字符及量词,帮助读者快速掌握正则表达式的使用。
1566

被折叠的 条评论
为什么被折叠?



