当前位置: 首页 > news >正文

正则表达式详解与实战指南:从入门到常见案例

正则表达式详解与实战指南:从入门到常见案例

原文 -> 正则表达式详解与实战指南:从入门到常见案例

正则表达式(Regular Expression,简称 RegExp)是编程中一项非常实用的技能。
它就像一把“字符串搜索利器”,能够帮助我们快速匹配、查找、验证或替换文本。

无论是验证邮箱、手机号,还是提取网页中的信息,正则表达式都能大显身手。
这篇文章将带你从基础符号到常见实战一步步掌握它。


一、什么是正则表达式?

正则表达式是一种用特定规则描述字符串模式的语法。

举个例子:
如果我们想找出一段文字中所有的电话号码,可以用一条规则去描述“电话号码的格式”,这条规则就是正则表达式。

例如:

/\d{11}/

这条规则表示——匹配连续的 11 个数字


二、正则表达式的基本语法符号

下面是最常用的正则符号,理解它们,你就掌握了核心。

符号含义示例匹配示例
.匹配除换行符外的任意字符/a.b/“acb”、“a_b”
\d数字,等价于 [0-9]/\d\d/“12”、“45”
\w字母、数字、下划线/\w+/“abc123”
\s空白字符(空格、换行等)/\s+/“ ”、“\n”
^匹配字符串开头/^a/“apple” ✅,“banana” ❌
$匹配字符串结尾/a$/“banana” ✅,“apple” ❌
[]字符集,匹配方括号内任一字符/[abc]/匹配 “a”、“b” 或 “c”
[^ ]否定字符集,匹配除括号内字符外的任意字符/[^0-9]/匹配任何非数字
*重复 0 次或多次/go*/“g”、“go”、“gooo”
+重复 1 次或多次/go+/“go”、“goo”
?可有可无(0 或 1 次)/colou?r/“color”、“colour”
{n}重复 n 次/\d{4}/“2025”
{n,}至少重复 n 次/a{2,}/“aa”、“aaaa”
{n,m}重复 n 到 m 次之间/\d{2,4}/“12”、“1234”
()分组,用于提取或重复匹配/(ab)+/“ab”、“abab”
``或,匹配多个规则之一`/cat
\转义字符/\./ 匹配一个点 .“.”

三、在 JavaScript 中如何使用正则

在 JavaScript 里,正则通常有两种用法:

直接字面量创建:

let reg = /^[A-Z]\d{3}$/;
console.log(reg.test("A123")); // true

使用构造函数:

let reg = new RegExp("^[A-Z]\\d{3}$");

常用方法:

方法说明
.test(str)判断字符串是否匹配,返回 true / false
.match(reg)从字符串中提取匹配内容
.replace(reg, newStr)替换匹配内容
.split(reg)按正则规则分割字符串

四、实战示例:日常最常见的几类正则

1. 验证邮箱

const emailReg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailReg.test("user@example.com")); // true

解释:

  • [^\s@]+:匹配一个或多个非空格、非 @ 的字符
  • @:必须包含 @
  • \.:点号
  • [^\s@]+:顶级域名部分(如 com、cn)

2. 验证中国大陆手机号

const phoneReg = /^1[3-9]\d{9}$/;
console.log(phoneReg.test("13812345678")); // true

解释:

  • 1 开头
  • 第二位是 3~9
  • 后面跟 9 位数字

3. 匹配身份证号(简化版)

const idReg = /^\d{15}|\d{18}$/;
console.log(idReg.test("440102199912123456")); // true

4. 验证是否为纯字母

const letterReg = /^[A-Za-z]+$/;

5. 提取网页中的所有链接

const html = '<a href="https://example.com">Example</a>';
const linkReg = /href="(.*?)"/g;
console.log(html.match(linkReg)); // ['href="https://example.com"']

6. 去掉多余空格

let text = "   Hello   world   ";
console.log(text.replace(/\s+/g, " ").trim()); // "Hello world"

五、正则表达式的小技巧

  1. 测试工具推荐:
    • regex101.com
    • regexr.com
      这些网站能实时显示匹配效果,非常适合学习和调试。
  2. 逐步构建复杂规则
    不要一次性写一长串正则,先写小的片段,逐步测试。
  3. 加上注释
    在复杂正则中使用 x 模式(某些语言支持)或多行字符串加注释,方便理解。

六、结语

正则表达式初看“天书”,但掌握核心符号后,它其实非常实用。
一句话总结:

正则表达式不是魔法,而是“用规则描述字符串”的语言。

无论你是前端、后端,还是数据工程师,掌握正则都能让你的代码更高效、更优雅。

http://www.dtcms.com/a/591103.html

相关文章:

  • 手机可以做3d动漫视频网站遵义网站建设方案
  • ps做网站画布多大深圳 网站建设培训学校
  • 昆山住房与城乡建设局网站网页设计师培训学院
  • 厦门企业网站制作软件外包官网
  • 网站建设服务器的配置wordpress 招商系统
  • 我要建企业营销型网站成都网站建设科技公
  • 睢宁县凌城做网站的外贸人常用网站
  • 淄博网站制作价格低灵犀科技 高端网站建设
  • 外国大气网站建视频网站需要多大空间
  • 做地税电子签章的网站有哪些好的做兼职网站有哪些
  • 网页设计动画网站php做视频网站有哪些软件下载
  • 网站建设的学习网站开发外包业务怎么接
  • 南昌网站建设资讯龙岩seo招聘
  • 穷游 网站开发网站基本功能
  • 买股票的最佳时机解题思路
  • 企业网站推广定义重庆市建设工程信息网官网专家评审
  • 鸣蝉自助建站平台中山好的网站建设公司
  • 长安网站建设多少钱免费模版网
  • 网站动态页面免费自己制作app手机软件
  • 网站建设可以在里面装东西营销型企业网站的建设方案
  • 泊头市做网站网站建设合同 附件
  • 违法网站怎么做安全深圳室内设计公司50强
  • 网站建设吗中小企业网站制作方法
  • 什么网站可以做告白的网页网站建设优化服务器
  • 找个公司做网站需要注意什么哈尔滨 做网站公司有哪些
  • 云南人乌兰察布seo
  • 网站优化wordpress 首页折叠
  • 网站怎么做高权重柳州市网站制作公司
  • 郑州哪家做网站最好微营销推广平台有哪些
  • 企业免费网站建设河池市网站建设