【常用正则表达式】在日常的编程和文本处理中,正则表达式(Regular Expression,简称 regex)是一种非常强大的工具。它可以帮助我们快速地匹配、查找、替换或提取字符串中的特定模式。无论是在前端开发、后端逻辑处理,还是数据清洗过程中,正则表达式都扮演着重要的角色。
为了方便开发者查阅和使用,以下是一些常用正则表达式的总结,涵盖常见的字符匹配、数字验证、邮箱格式、URL识别等场景。
一、基础正则表达式说明
| 正则表达式 | 说明 | 示例 |
| `^` | 匹配字符串的开始 | `^a` 匹配以 "a" 开头的字符串 |
| `$` | 匹配字符串的结束 | `a$` 匹配以 "a" 结尾的字符串 |
| `.` | 匹配任意单个字符(除了换行符) | `a.c` 可以匹配 "abc", "aac" 等 |
| `\d` | 匹配一个数字字符 | `\d{3}` 匹配三个数字,如 "123" |
| `\D` | 匹配一个非数字字符 | `\D+` 匹配一个或多个非数字字符 |
| `\w` | 匹配字母、数字或下划线 | `\w+` 匹配一个或多个单词字符 |
| `\W` | 匹配非单词字符 | `\W` 匹配空格、标点等 |
| `\s` | 匹配空白字符(空格、制表符、换行等) | `\s+` 匹配多个空白字符 |
| `\S` | 匹配非空白字符 | `\S+` 匹配非空白内容 |
二、常见应用场景及正则表达式
| 应用场景 | 正则表达式 | 说明 | |
| 匹配电子邮件地址 | `^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$` | 基本邮箱格式验证 | |
| 匹配手机号码(中国) | `^1[3-9]\d{9}$` | 匹配中国大陆手机号 | |
| 匹配IP地址 | `^(\d{1,3}\.){3}\d{1,3}$` | 匹配标准IPv4地址 | |
| 匹配URL地址 | `^(https?:\/\/)?([\da-z\.-]+\.[a-z\.]{2,6})([\/\w \.-])\/?$` | 匹配HTTP/HTTPS链接 | |
| 匹配日期(YYYY-MM-DD) | `^\d{4}-\d{2}-\d{2}$` | 匹配标准日期格式 | |
| 匹配密码(至少8位,含大小写字母和数字) | `^(?=.[a-z])(?=.[A-Z])(?=.\d).{8,}$` | 强密码校验 | |
| 匹配中文字符 | `[\u4e00-\u9fa5]` | 匹配简体或繁体中文 | |
| 匹配电话号码 | `^(\d{3}-\d{8} | \d{4}-\d{7})$` | 匹配带区号的电话号码 |
三、使用建议
1. 避免过度复杂:正则表达式虽然强大,但过于复杂的写法可能导致可读性差,维护困难。
2. 测试工具辅助:可以使用在线正则表达式测试工具(如 regex101.com)进行验证。
3. 注意语言差异:不同编程语言对正则表达式的语法支持略有不同,例如 JavaScript 和 Python 的写法可能有细微差别。
4. 考虑性能问题:某些正则表达式可能会导致性能瓶颈,特别是在处理大量文本时,需谨慎设计。
四、结语
正则表达式是程序员必备的技能之一,掌握常用的表达式能显著提升工作效率。通过不断实践和积累,你可以更灵活地应对各种字符串处理任务。希望本文对你有所帮助,也欢迎你在实际项目中尝试和优化这些正则表达式。


