正则表达式入门:5 个高频场景,学会就能解决 80% 的文本问题

举报
yd_255989600 发表于 2026/10/31 06:07:50 2026/10/31
【摘要】 提到正则表达式,很多开发者的第一反应是「天书」。但实际工作中,80% 的文本处理需求只需要掌握几个固定的模式。这篇不讲完整语法,只讲 5 个最常用的高频场景,看完就能上手。场景一:校验手机号和邮箱。手机号:^1[3-9]\d{9}$,含义是以 1 开头、第二位是 3-9、后面跟 9 位数字。邮箱的宽松版:^\S+@\S+\.\S+$,虽然不够严谨,但能拦住绝大多数格式错误。场景二:提取字符串...

提到正则表达式,很多开发者的第一反应是「天书」。但实际工作中,80% 的文本处理需求只需要掌握几个固定的模式。这篇不讲完整语法,只讲 5 个最常用的高频场景,看完就能上手。

场景一:校验手机号和邮箱。手机号:^1[3-9]\d{9}$,含义是以 1 开头、第二位是 3-9、后面跟 9 位数字。邮箱的宽松版:^\S+@\S+\.\S+$,虽然不够严谨,但能拦住绝大多数格式错误。

场景二:提取字符串中的内容。用捕获组 () 把关心的部分包起来。比如从日志里提取时间戳:\[(\d{4}-\d{2}-\d{2})\] ,括号里的内容就是第一组。JavaScript 里用 match 方法,Python 里用 group(1) 取值。

场景三:替换与脱敏。把手机号中间四位换成星号:查找 (\d{3})\d{4}(\d{4}),替换为 $1****$2。这个模式在日志脱敏、数据展示里用得非常多,一个表达式搞定。

场景四:贪婪与懒惰。\d+ 默认是贪婪匹配,会尽可能多地匹配字符;在后面加个问号变成 \d+? 就变成懒惰匹配,尽可能少地匹配。处理 HTML 标签时(如

.*?

),用懒惰匹配才能正确停在第一个结束标签。


场景五:分割与清理。把多个连续空格、制表符压成一个空格:\s+ 替换为单个空格。去掉行首行尾空白:^\s+|\s+$ 全局替换。处理用户粘贴的脏数据时,这两招立竿见影。

学习建议:不要试图背下全部语法,遇到需求时先想「我要匹配什么特征」,再查对应元字符。推荐用 regex101 这类在线工具边写边看解释,比看书记得快。正则不是万能的,嵌套结构解析这类任务交给真正的解析器更靠谱。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。