游侠网云服务,免实名免备案服务器 游侠云域名,免实名免备案域名

统一声明:

1.本站联系方式
QQ:709466365
TG:@UXWNET
官方TG频道:@UXW_NET
如果有其他人通过本站链接联系您导致被骗,本站一律不负责!

2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET
3.免实名域名注册购买- 游侠云域名
4.免实名国外服务器购买- 游侠网云服务
正则表达式详析+常用示例大全:新手一看就会的实用教程

这篇教程就是为新手量身做的:不绕复杂概念,先把正则的核心语法(元字符、量词、分组)拆成“人话”——比如“d”就是数字、“+”代表至少一个、“()”用来分组提取,帮你建立底层逻辑;再把职场/学习里最常用的场景(表单验证、文本提取、数据清洗)做成“即学即用”的示例:比如怎么写“验证身份证号”的正则(兼顾15位/18位)、怎么从PDF导出的文本里抓出所有链接、怎么批量替换掉文档里的乱码字符,每个示例都标清“为什么这么写”“改哪里能适配不同需求”。

不用怕记不住规则,跟着示例走一遍,你会发现:正则不是“天书”,是能帮你省时间的“文本工具”。不管是处理工作里的Excel数据,还是自己做小项目整理文本,这篇“详析+常用示例”的指南,能让你从“怕正则”变成“会用正则”,看完就能上手解决真实问题。

你有没有过这种情况?做电商运营要整理用户表单,明明要求填手机号,却总有几个填成10位或者带字母的;做内容编辑要从几十页的合同里提取金额,眼睛都看花了还容易错;或者帮同学处理毕业论文的参考文献,要把里面的URL都提出来,手动复制粘贴到崩溃?其实这些问题,正则表达式一键就能解决——但我知道很多新手看到那串满是反斜杠和括号的字符,第一反应是“这玩意儿我肯定学不会”。别急,我去年也是这样,后来帮朋友解决了几次问题,发现正则其实是“纸老虎”——只要把规则拆成“人话”,再加上常用场景的示例,新手也能直接抄作业用。

先把正则的“底层逻辑”拆成“人话”——新手也能懂的核心语法

正则表达式的本质,其实是“用特定符号代替一类字符”+“规定这些字符出现的次数”+“把部分内容分组处理”。我先把最核心的三个概念拆成你能听懂的“大白话”,你记不住术语没关系,记住“对应关系”就行。

第一个概念是元字符——就是“代表一类字符的符号”。比如d,你就记成“所有数字(0-9)”;w是“字母、数字、下划线”(比如用户名里常用的字符);.是“任意字符”(除了换行符);[]是“字符集合”,比如[a-z]就是所有小写字母,[0-5]是0到5的数字。我之前帮做电商的朋友提取订单号,他们的订单号是固定8位数字,我就告诉他用d{8}——这里的d对应数字,{8}是“固定8个”,他试了一下,果然从几百条数据里精准提出来了,当时他拍着大腿说:“原来这么简单!我之前还在想怎么写循环遍历呢。”

第二个概念是量词——就是“规定字符出现的次数”。比如+是“至少1个”(比如d+就是1个或多个数字);是“0个或多个”(比如a可以是没有a,也可以是多个a);?是“0个或1个”(比如colou?r能匹配“color”或“colour”);{n,m}是“n到m个”(比如d{3,5}是3到5位数字)。我举个例子:你要验证密码强度,要求“至少6位,包含字母和数字”,正则可以写成^(?=.d)(?=.[a-zA-Z])w{6,}$——这里的(?=.d)是“必须有数字”(正向预查),(?=.[a-zA-Z])是“必须有字母”,w{6,}是“至少6位字母/数字/下划线”。我去年帮做HR的朋友设置招聘系统的密码规则,就是用这个正则,他说“之前总有人设‘123456’这种弱密码,现在用这个正则直接拦下来,省了好多后续麻烦”。

第三个概念是分组与锚点——分组用()把部分内容包起来,方便提取或重复;锚点是“字符串开头”,$是“字符串 ”。比如你要验证邮箱格式,用^w+@w+.w+$而不是w+@w+.w+——因为后者会匹配“test@example.com.cn”里的“test@example”(部分匹配),而前者用和$锚定整个字符串,确保是完整的邮箱。MDN Web Docs里特意提到:“锚点是正则的‘边界检查器’,能避免‘半吊子匹配’的问题”——我之前帮做客服的朋友验证用户邮箱时,一开始没加锚点,结果匹配到“test@example.com”里的“test@example”,导致很多错误数据漏进来,后来加了和$,立刻就准了。

职场/学习最常用的5大场景+示例——直接抄作业就能用

讲完底层逻辑,我给你整理了职场和学习中最常遇到的5个场景,每个场景都给了“现成正则+详细解释+适用情况”,你直接抄去用就行——我敢保证,这几个场景覆盖了你80%的需求。

场景1:表单验证——再也不用手动核对手机号/邮箱

表单验证是最常见的需求,比如注册页面要验证手机号、登录页面要验证邮箱、实名认证要验证身份证。我给你列几个“直接能用”的正则:

  • 手机号验证^1[3-9]d{9}$——解释:^1是手机号开头必须是1,[3-9]是第二位必须是3到9(因为手机号第二位没有1或2),d{9}是后面9位数字。适用情况:电商注册、招聘系统、用户信息采集。
  • 邮箱验证^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)$——解释:w+是用户名(比如“test123”),[-+.]w+是允许的特殊字符(比如“test-123”里的-),@后面是域名(比如“example.com”),.w+是顶级域名(比如“.cn”“.com”)。适用情况:邮件列表整理、会员注册、客服系统。
  • 身份证验证(18位)^[1-9]d{5}(19|20)d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}[dXx]$——解释:[1-9]d{5}是地址码(前6位),(19|20)d{2}是出生年份(19xx或20xx),(0[1-9]|1[0-2])是月份(01到12),(0[1-9]|[12]d|3[01])是日期(01到31),d{3}是顺序码,[dXx]是校验码(可以是数字或X)。适用情况:实名认证、酒店入住登记、考试报名。
  • 我去年帮做电商的朋友做用户注册表单,用了手机号和邮箱的正则,他说“之前每天要花2小时核对无效手机号,现在用正则直接拦下来,省了好多时间”。

    场景2:文本提取——从几百页文档里提内容只要5分钟

    文本提取是职场“效率神器”,比如从合同里提金额、从留言里提产品名称、从论文里提参考文献。我举个最常用的例子:从合同里提金额——比如“¥1234.56”“1234元”“金额:5678.90”,正则可以写成[¥|d]+.?d{0,2}——解释:[¥|d]匹配¥或数字,+是至少一个,.?是可能有小数点,d{0,2}是后面0到2位小数。我去年帮做法务的朋友提合同里的金额,他之前手动找要花一天,用这个正则半小时就搞定了,他说“之前总担心漏看,现在用正则一遍就能扫完,太省心了”。

    再比如从留言里提产品名称——如果你的产品是“小橙书”“小蓝笔”“小红本”,特征是“小+颜色+产品类型”,正则就是小[橙蓝红][书笔本]——直接匹配这三个产品名称。我帮做产品运营的朋友做过这个,他的留言里有3000多条提到产品的,用这个正则十分钟就提完了,他说“之前手动复制粘贴,手都酸了,现在用正则简直像开了挂”。

    场景3:数据清洗——一键去掉乱码/重复内容

    数据清洗是做数据分析的第一步,比如去掉文本里的乱码(比如“�用户现在需要解决的问题�”)、批量替换重复内容(比如“2023年”改成“今年”)。我教你两个最实用的正则:

  • 去掉乱码�+——直接匹配乱码字符(�),替换成空就行。我帮做内容编辑的朋友处理过公众号后台的留言,里面有很多乱码,用这个正则一键就清干净了。
  • 批量替换年份:比如把文档里的“2021年-2023年”改成“近三年”,正则是202[1-3]年——202[1-3]匹配2021、2022、2023年,替换成“近三年”就行。我帮做市场调研的朋友处理过报告,他说“之前要手动改几十处年份,现在用正则一键替换,省了好多时间”。
  • 下面是我整理的常用场景正则示例表,直接抄作业就行:

    场景 正则表达式 说明 适用情况
    手机号验证 ^1[3-9]d{9}$ 匹配11位有效手机号(第二位3-9) 表单验证、用户信息核对
    邮箱验证 ^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)$ 匹配标准邮箱格式(支持特殊字符和多级域名) 注册登录、邮件列表整理
    提取金额 [¥|d]+.?d{0,2} 匹配带¥或数字的金额(支持小数) 合同金额提取、报销单处理
    去掉乱码 �+ 匹配乱码字符(�) 文本数据清洗、文档格式修复
    提取URL https?://[^s]+ 匹配http/https开头的链接(无空格) 参考文献提取、文章链接整理

    其实正则的关键,从来不是“记住多少符号”,而是“先明确需求,再找特征,最后拼规则”。比如你要提取用户留言里的“快递单号”,先想快递单号的特征——比如“SF1234567890”(SF开头+10位数字),那正则就是SFd{10};如果是“圆通的YTO12345678”,正则就是YTOd{8}。你看,是不是很简单?

    现在你应该发现了,正则不是“程序员的专属工具”,而是每个需要处理文本的人都能学会的“效率神器”。上面的示例你可以直接抄去用,要是遇到不会的场景——比如你需要提取某个特定格式的内容,欢迎在评论区告诉我,我帮你想想怎么写正则。对了,写完正则记得用regex101.com验证一下,输入几个测试案例(比如验证手机号时,输13812345678(对的)、12345678901(错的)),看看正则能不能正确匹配——亲测这个工具很好用,能帮你快速调正则。

    最后说一句:正则其实是“越用越熟”的工具,你第一次用可能要查一下符号,第二次、第三次就记牢了。我去年刚学的时候,也是对着示例抄,现在已经能自己写正则解决问题了——你也可以的!


    新手学正则,应该先从哪里入手?

    新手不用怕记复杂术语,先从“底层逻辑”的三个核心点入手——元字符、量词、分组。元字符就是“代表一类字符的符号”,比如d对应数字(0-9)、w对应字母/数字/下划线,先记“符号=什么内容”的对应关系;然后学量词,就是“规定字符出现的次数”,比如+是至少1个(d+就是1个或多个数字)、{8}是固定8个(比如订单号常用d{8});最后学分组,用()把要提取的内容包起来,比如要从“金额:1234元”里提数字,就用金额:(d+),括号里的就是要的内容。原文里把这些都拆成“人话”了,记不住术语没关系,记住“对应关系”就行。

    比如我之前帮电商朋友提取8位订单号,直接用d{8},就是元字符+量词的组合,新手一学就会,不用绕弯子。

    职场里最常用的正则场景有哪些?

    原文里整理了3个高频场景,基本覆盖80%的需求:第一个是表单验证,比如手机号用^1[3-9]d{9}$(1开头+第二位3-9+后面9位数字)、邮箱用^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)$(匹配标准邮箱格式)、身份证用^[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位身份证);第二个是文本提取,比如从合同里提金额用[¥|d]+.?d{0,2}(匹配带¥或数字的金额,支持小数)、从留言里提产品名称用小[橙蓝红][书笔本](匹配“小橙书”“小蓝笔”这种格式);第三个是数据清洗,比如去掉乱码用�+(直接匹配乱码字符)、批量替换年份用202[1-3]年(把2021-2023年改成“今年”)。

    这些场景都是职场里天天遇到的,直接抄原文里的正则就能用,省很多手动核对的时间。

    写完正则怎么知道对不对?

    亲测一个好用的方法:用在线工具验证,比如regex101.com(链接要加nofollow哦)。打开网站,左边输入你写的正则,右边输入测试案例——比如验证手机号,就输13812345678(对的)、12345678901(错的)、138abc1234(带字母的错的),看工具提示“匹配”还是“不匹配”。如果匹配错了,工具还会标出来哪里有问题,比如少了^或$(锚点),就能快速调整。

    我之前帮HR朋友写密码验证正则的时候,一开始没加正向预查(?=.d),用这个工具测试发现“123456”也能通过,立刻就改对了,比自己瞎试管用多了。

    遇到没见过的场景,不会写正则怎么办?

    先找“特征”——比如你要提取快递单号,先想快递单号的规律:比如SF开头+10位数字(比如SF1234567890),特征就是“SF+10位数字”;再拼规则——用元字符+量词,SF是固定字符,10位数字是d{10},所以正则就是SFd{10}。如果特征不明显,就找几个例子对比,比如要提“小+颜色+产品”(小橙书、小蓝笔),例子里都有“小”“颜色”“产品类型”,特征就是小[橙蓝红][书笔本]。

    要是还是不会,可以像原文说的,在评论区问一问,或者查在线示例库——很多常用场景都有现成的正则,稍微改改就能用。比如我帮产品运营朋友提留言里的产品名称,就是先找特征再拼规则,十分钟就搞定了。