正则表达式入门:5 个高频场景,学会就能解决 80% 的文本问题
提到正则表达式,很多开发者的第一反应是「天书」。但实际工作中,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 这类在线工具边写边看解释,比看书记得快。正则不是万能的,嵌套结构解析这类任务交给真正的解析器更靠谱。
- 点赞
- 收藏
- 关注作者
评论(0)