【正则表达式语法大全】正则表达式(Regular Expression,简称 regex 或 regexp)是一种强大的文本处理工具,广泛用于字符串匹配、搜索、替换和提取等操作。掌握正则表达式的语法,能够显著提升编程效率和数据处理能力。本文将对常见的正则表达式语法进行总结,并以表格形式清晰展示。
一、基础字符匹配
| 符号 | 说明 | 示例 |
| `a` | 匹配字符 a | 匹配 "apple" 中的 'a' |
| `0-9` | 匹配数字 | 匹配 "123" 中的任意数字 |
| `A-Z` | 匹配大写字母 | 匹配 "HELLO" 中的 'H' |
| `a-z` | 匹配小写字母 | 匹配 "hello" 中的 'h' |
二、元字符与特殊符号
| 符号 | 说明 | 示例 |
| `.` | 匹配任意单个字符(除了换行符) | 匹配 "cat" 中的 'c' 和 't' |
| `\d` | 匹配一个数字(等价于 [0-9]) | 匹配 "abc123" 中的 '1' 和 '2' |
| `\D` | 匹配一个非数字字符 | 匹配 "abc123" 中的 'a' 和 'b' |
| `\w` | 匹配字母、数字或下划线(等价于 [a-zA-Z0-9_]) | 匹配 "user_name" 中的 'u' 和 's' |
| `\W` | 匹配非字母、数字或下划线的字符 | 匹配 "user-name" 中的 '-' |
| `\s` | 匹配空白字符(空格、制表符、换行等) | 匹配 "hello world" 中的空格 |
| `\S` | 匹配非空白字符 | 匹配 "hello world" 中的 'h' 和 'e' |
三、量词与重复控制
| 符号 | 说明 | 示例 |
| `` | 匹配前面的元素 0 次或多次 | 匹配 "aaa" 中的多个 'a' |
| `+` | 匹配前面的元素 1 次或多次 | 匹配 "aab" 中的 'aa' |
| `?` | 匹配前面的元素 0 次或 1 次 | 匹配 "a" 或 "ab" |
| `{n}` | 匹配前面的元素恰好 n 次 | 匹配 "aaa" 中的三个 'a' |
| `{n,}` | 匹配前面的元素至少 n 次 | 匹配 "aaaa" 中的四个 'a' |
| `{n,m}` | 匹配前面的元素至少 n 次,最多 m 次 | 匹配 "aa" 或 "aaa" |
四、分组与捕获
| 符号 | 说明 | 示例 | |
| `( )` | 将多个字符组合成一个分组 | 匹配 "hello world" 中的 "hello" | |
| ` | ` | 表示“或”的关系 | 匹配 "apple" 或 "banana" |
| `(?=...)` | 正向先行断言,匹配后面是某个模式 | 匹配 "apple pie" 中的 "apple" | |
| `(?!...)` | 负向先行断言,匹配后面不是某个模式 | 匹配 "apple" 但不匹配 "apples" | |
| `(?<=...)` | 正向后发断言,匹配前面是某个模式 | 匹配 "123abc" 中的 "abc" | |
| `(? | 负向后发断言,匹配前面不是某个模式 | 匹配 "abc123" 中的 "123" |
五、转义字符
| 符号 | 说明 | 示例 |
| `\` | 转义特殊字符,使其失去特殊含义 | 匹配实际的 '.' 字符,如 `\.` |
| `\\` | 在字符串中表示一个反斜杠 | 如在 Java 中表示 `"\\d"` |
六、常用正则表达式示例
| 场景 | 正则表达式 | 说明 |
| 匹配邮箱地址 | `^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$` | 匹配标准格式的邮箱 |
| 匹配手机号码(中国) | `^1[3-9]\d{9}$` | 匹配 11 位手机号 |
| 匹配 URL | `^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-])\/?$` | 匹配常见网址格式 |
| 匹配日期(YYYY-MM-DD) | `^\d{4}-\d{2}-\d{2}$` | 匹配标准日期格式 |
总结
正则表达式是处理文本的强大工具,掌握其基本语法可以极大提高代码效率和数据处理能力。不同编程语言(如 Python、JavaScript、Java 等)对正则表达式的支持略有差异,建议根据具体使用场景查阅相关文档。通过不断练习和实践,可以更加灵活地运用正则表达式解决复杂问题。
以上就是【正则表达式语法大全】相关内容,希望对您有所帮助。


