Y
YAKOOAITOOLS
/^[a-z]+$/match!
开发

正则表达式实战手册:20个最常用的匹配模式

2025-04-28开发

正则表达式是什么?

正则表达式(Regular Expression,简称regex)是一种用特殊字符序列描述文本模式的工具。它能帮你在大量文本中查找、匹配、替换符合特定规则的内容。

基础语法速览

元字符 - `.` 匹配任意单个字符 - `\d` 匹配数字 [0-9] - `\w` 匹配单词字符 [a-zA-Z0-9_] - `\s` 匹配空白字符 - `^` 匹配行首 - `$` 匹配行尾

量词 - `*` 零次或多次 - `+` 一次或多次 - `?` 零次或一次 - `{n}` 恰好n次 - `{n,m}` n到m次

20个实用正则模式

1. 邮箱验证 `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`

2. 手机号(中国) `^1[3-9]\d{9}$`

3. URL匹配 `https?://[\w\-]+(\.[\w\-]+)+[\w\-.,@?^=%&:/~+#]*`

4. IPv4地址 `^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$`

5. 日期格式(YYYY-MM-DD) `^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$`

6. 强密码验证 `^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$`

7. 中文字符 `[\u4e00-\u9fa5]+`

8. HTML标签提取 `<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)`

9. 去除首尾空格 `^\s+|\s+$`

10. 数字千分位分隔 `\B(?=(\d{3})+(?!\d))`

11. 身份证号码 `^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$`

12. HEX颜色值 `^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`

13. 金额格式 `^\d+(\.\d{1,2})?$`

14. 用户名(字母数字下划线,4-16位) `^[a-zA-Z0-9_]{4,16}$`

15. 文件扩展名提取 `\.([a-zA-Z0-9]+)$`

16. 驼峰转下划线 `([A-Z])` → 替换为 `_$1` 再转小写

17. 空行删除 `^\s*\n`

18. 重复单词检测 `\b(\w+)\s+\1\b`

19. Markdown链接提取 `\[([^\]]+)\]\(([^)]+)\)`

20. JSON字符串键名 `"([^"]+)"\s*:`

调试技巧

1. 从简单开始 先写一个能匹配基本情况的简单模式,再逐步添加边界条件。

2. 使用在线测试工具 实时看到匹配结果比在代码中反复运行高效得多。

3. 添加注释 复杂正则使用命名捕获组和注释模式(x flag)提高可读性。

4. 注意性能 避免嵌套量词(如 (a+)+)可能导致的灾难性回溯。

使用YAKOOAITOOLS正则测试器

我们的正则表达式工具提供: - 实时匹配高亮 - 匹配分组详情展示 - 常用模式快速插入 - 多行文本测试 - JavaScript/Python等多语言模式支持

正则表达式是开发者工具箱中不可或缺的利器。熟练掌握这20个常用模式,日常开发中80%的文本处理需求都能轻松应对。

评论 (0)

0/500

还没有评论,来写第一条吧!