博客

  • 想学正则,这篇文章绝对让你爱上正则(保姆级)

    转载说明:经授权转载,原文地址:https://blog.csdn.net/qq_29801073/article/details/135597325

    想学正则,这篇文章绝对让你爱上正则(保姆级)

    目录

    • 一. 正则表达式介绍
    • 二. 初识正则表达式
    • 三. 正则表达式元字符详解
    • 四. 正则表达式中的修饰符
    • 五. JS中使用正则表达式
    • 六. 总结

    一. 正则表达式介绍

    正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。它在代码中常简写为 regex、regexp 或 RE,主要用于字符串模式分割、匹配查找及替换操作。

    正则表达式在很多编程语言都可以使用,例如 JavaScript、Java、Python、PHP 等,通常用于:

    1. 对字符串进行模式匹配和搜索。
    2. 验证输入格式,例如邮箱、手机号、身份证号等。
    3. 替换文本中的特定内容。

    如果想深入学习 JavaScript,建议结合以下基础内容一起掌握:

    二. 初识正则表达式

    下面是一个最基础的正则:

    /abc/

    这表示:

    • 在目标字符串中查找连续出现的 abc。
    • 例如:
    • abc ✅ 匹配
    • xabcx ✅ 包含匹配
    • ab ❌ 不匹配

    三. 正则表达式元字符详解

    正则表达式最核心的内容就是元字符。下面按类别整理。

    1. 边界元字符

    • ^:匹配字符串开始
    • $:匹配字符串结束

    示例:

    /^abc/ 匹配以 abc 开头的字符串
    /abc$/ 匹配以 abc 结尾的字符串

    2. 量词元字符

    用于控制前面字符出现的次数。

    • *:出现 0 次或多次
    • +:出现 1 次或多次
    • ?:出现 0 次或 1 次
    • {n}:恰好出现 n 次
    • {n,}:至少出现 n 次
    • {n,m}:出现 n 到 m 次

    示例:

    • /a*/:a 出现任意次
    • /a+/:至少一个 a
    • /a?/:0 个或 1 个 a
    • /a{3}/:3 个 a
    • /a{2,5}/:2 到 5 个 a

    3. 特殊元字符

    • .:匹配除换行符外的任意单个字符
    • \:转义字符
    • |:或(选择匹配)
    • ():分组
    • []:字符集合
    • [^]:排除型字符集合

    示例:

    • /a.c/:匹配 abc、a1c
    • /a\+b/:匹配字符串 a+b
    • /ab|cd/:匹配 ab 或 cd
    • /(abc)+/:一个或多个 abc

    4. 预定义字符类

    • \d:数字,等价于 [0-9]
    • \D:非数字
    • \w:字母、数字、下划线,等价于 [A-Za-z0-9_]
    • \W:非字母数字下划线
    • \s:空白字符
    • \S:非空白字符

    5. 其他常用元字符说明

    • \b:单词边界
    • \B:非单词边界
    • (?=):正向预查
    • (?! ):负向预查

    四. 正则表达式中的修饰符

    修饰符用于改变匹配行为,常见有:

    • g:全局匹配
    • i:忽略大小写
    • m:多行匹配

    示例:

    • /abc/g
    • /abc/i
    • /^abc/m

    五. JS中使用正则表达式

    在 JavaScript 中有两种方式创建正则表达式:

    1. 字面量方式

    let reg = /abc/g

    2. 构造函数方式

    let reg = new RegExp("abc", "g")

    常见方法:

    1. test()

    用于检测字符串是否匹配,返回布尔值。

    let reg = /abc/;
    console.log(reg.test("abc123")); // true

    2. exec()

    用于获取匹配结果,返回数组或 null。

    let reg = /abc/;
    console.log(reg.exec("123abc456")); // ["abc"]

    3. match()

    字符串方法,返回匹配结果。

    let str = "abc123abc";
    console.log(str.match(/abc/g)); // ["abc", "abc"]

    4. replace()

    字符串替换。

    let str = "I love js";
    console.log(str.replace(/js/, "regex")); // I love regex

    六. 总结

    正则表达式并不难,难的是记忆各种元字符的含义和组合规则。

    建议学习路线:

    1. 先记住常见元字符。
    2. 多写几个简单匹配例子。
    3. 再学习分组、捕获、贪婪匹配、预查等高级用法。
    4. 结合 JavaScript 字符串方法练习。

    当你真正动手写几个案例之后,就会发现正则表达式并没有想象中那么可怕。

  • 世界,您好!

    欢迎使用 WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!