常用的正则表达式

正则表达式在表单验证、文本提取以及数据清洗中,都能帮我们省下大量代码。今天就整理了一批日常开发高频用到的正则表达式,附上场景说明和使用提示,新手也能直接上手。

一、 基础字符匹配

这类正则主要用于快速筛选、匹配简单字符规则,是进阶用法的基础。

正则表达式 匹配场景 示例
^abc$ 精确匹配字符串abc(开头 + 结尾限制) 匹配abc,不匹配aabc/abc123
. 匹配除换行符外的任意单个字符 ​​​​​a.c匹配abc/a1c/a#c
\d 匹配单个数字(等价于0-9) \d\d匹配12/99,不匹配ab
\w 匹配字母、数字、下划线(等价于a-zA-Z0-9_) \w+匹配user_01/name23
\s 匹配任意空白字符(空格、制表符、换行等) a\sb匹配a b/a b
abc 匹配括号内的任意一个字符 abc匹配a/b/c
\^abc 匹配除括号内字符外的任意字符 \^abc匹配1/x/#,不匹配a

二、 表单验证高频正则

前端 / 后端做表单校验时,这些正则能直接复用,覆盖大部分常见场景。

1. 手机号验证

python 复制代码
^1[3-9]\d{9}$
  • 说明:以1开头,第二位为3-9(排除 12 开头的非手机号段),后面跟 9 位数字。
  • 注意:仅做格式校验,不验证号码是否真实存在。

2. 邮箱验证

javascript 复制代码
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
  • 说明:支持字母、数字、下划线、连字符,适配大部分主流邮箱格式(如user_name@163.com、test-123@qq.com.cn)。

3. 身份证号验证

python 复制代码
^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$
  • 说明:严格匹配 18 位身份证结构 ------6 位地址码 + 8 位出生日期(19/20 开头)+3 位顺序码 + 1 位校验码(支持 X/x)。

4. 密码强度验证

python 复制代码
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,16}$
  • 说明:8-16 位,必须包含大小写字母和数字,兼顾安全性和易用性。
  • 进阶:如需加入特殊字符,可添加(?=.*!@#$%\^\&\*)。

5. 邮政编码

python 复制代码
^[1-9]\d{5}$
  • 说明:6 位数字,第一位不为 0。

三、 文本处理常用正则

日常做文本提取、替换、清洗时,这些正则能大幅提升效率。

1. 提取 URL 链接

python 复制代码
https?://[^\s]+

2. 匹配 HTML 标签

复制代码
<[^>]+>
  • 说明:匹配<开头、>结尾的标签,适用于简单的标签删除场景。
  • 注意:复杂 HTML 解析建议用专业库(如 Python 的 BeautifulSoup),正则无法处理嵌套标签。

3. 匹配中文字符

python 复制代码
[\u4e00-\u9fa5]
  • 说明:匹配任意单个汉字,\u4e00-\u9fa5是汉字的 Unicode 编码范围。
  • 扩展:\\u4e00-\\u9fa5+匹配连续汉字,可用于提取中文姓名、标题。

4. 去除多余空格

python 复制代码
\s+
  • 用法:将匹配到的连续空格替换为单个空格(如 JavaScript 中str.replace(/\s+/g, ' '))。

5. 匹配数字(整数 + 小数)

python 复制代码
^-?\d+(\.\d+)?$
  • 说明:匹配正负数、整数和小数,例如123、-45.67、0.89。

四、 开发小技巧 & 注意事项

1. 贪婪匹配 vs 非贪婪匹配

  1. 正则默认是贪婪匹配(尽可能匹配更多字符),比如a.*b匹配a123b456b时会取整个字符串;
  2. 加?可切换为非贪婪匹配,a.*?b会匹配a123b。

2. 不同语言的正则差异

  1. JavaScript 中需要加修饰符(如g全局匹配、i忽略大小写);
  2. Python 的re模块需注意转义字符(用原始字符串r''避免双反斜杠)。

3. 测试工具推荐 写正则时可以先用在线工具验证,比如 Regex101 、菜鸟工具正则测试,能直观看到匹配结果。

相关推荐
FED_AF13 小时前
Linux运维“邪修”功法之正则表达式
linux·运维·正则表达式
长按助力退休2 天前
正则表达式从入门到不懵逼
正则表达式
小白快快跑哦8 天前
python-字符串全解(六):正则表达式-转义与非转义
python·正则表达式·转义与非转义
zx_741484819 天前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Patrick在香港12 天前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
梦帮科技14 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
yume_sibai20 天前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
研☆香21 天前
js中使用的正则表达式
开发语言·javascript·正则表达式
2601_962293531 个月前
浅学python | 正则表达式集锦
正则表达式·字符串匹配·python知识·浅学python·ip地址检查
2601_962295581 个月前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配