正则表达式(Regex)通用相关知识点

一、基础元字符

符号 作用 示例
. 任意单个字符(除换行) a.b → acb、a1b
^ 行首 ^abc → 以 abc 开头
$ 行尾 abc$ → 以 abc 结尾
\d 数字 \d{2} → 12、99
\w 字母/数字/下划线 \w+ → abc123_
\s 空白 a\sb → a b
\D \W \S 对应取反
[abc] 匹配 a/b/c
[^a] 不匹配 a

二、量词(次数控制)

量词 含义
? 0 或 1 次
+ ≥1 次
* 0 或多次
{n} 正好 n 次
{n,} ≥n 次
{n,m} n~m 次

贪婪 / 非贪婪

  • 默认贪婪(尽量多匹配)
  • ? → 非贪婪(尽量少匹配)
    /<.*?>/g

三、分组与引用

  • () 分组捕获
  • (?:) 非捕获分组
  • |
  • \1 反向引用

示例:

(\d)\1 → 匹配 11、22、99

四、零宽断言(定位)

  • (?=a) 后面是 a
  • (?!a) 后面不是 a
  • (?<=a) 前面是 a
  • (?<!a) 前面不是 a

示例:

(?<=price:)\d+ → 提取 price: 后的数字

五、修饰符

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

🚩 重点:正则实际使用方法(以js为例子)

1. test() ------ 判断是否匹配(返回 true/false)

用于表单验证、格式检查

js 复制代码
let reg = /^\d+$/
reg.test("123")   // true
reg.test("abc")   // false

2. match() ------ 提取匹配结果(返回数组)

js 复制代码
let str = "a1b2c3"
str.match(/\d/g)   // ["1","2","3"]

3. replace() ------ 替换匹配内容

js 复制代码
let str = "hello 123"
str.replace(/\d/g, "#")   // "hello ###"

4. search() ------ 找位置(返回索引)

js 复制代码
"abc123".search(/\d/)   // 3

5. split() ------ 按正则分割字符串

js 复制代码
"a1b2c".split(/\d/)   // ["a","b","c"]

6. exec() ------ 高级匹配(循环抓取所有)

js 复制代码
let reg = /\d/g
reg.exec("a1b2")   // ["1"]
reg.exec("a1b2")   // ["2"]

📌 快速用法总结

  • 验证 → test
  • 提取 → match
  • 替换 → replace
  • 找位置 → search
  • 分割 → split
  • 循环抓取 → exec

📌 常用实战正则(直接复制)

  1. 手机号:^1[3-9]\d{9}$
  2. 邮箱:^\w+@\w+\.\w+$
  3. 身份证:^\d{17}[\dXx]$
  4. URL:^https?://\S+$
  5. 中文:[\u4e00-\u9fa5]
  6. 邮政编码:^\d{6}$
相关推荐
meilindehuzi_a3 小时前
打破0基础:通过 5 个核心案例深度拆解 JavaScript 正则表达式与运行时类型系统
开发语言·javascript·正则表达式
sugar__salt1 天前
JS正则表达式与字符串高阶实战精讲
开发语言·javascript·正则表达式
FBI HackerHarry浩2 天前
第二阶段Day07【Python生成器、yield关键字、property、正则表达式】
开发语言·python·正则表达式
曾阿伦2 天前
Unicode 正则表达式开发指南
python·正则表达式
程序大视界3 天前
【Python系列课程】Python正则表达式(下):环视、命名分组与日志实战
开发语言·python·正则表达式
超梦dasgg4 天前
Java 正则表达式 完整详解(语法 + 核心类 + 常用方法 + 实战案例)
java·开发语言·正则表达式
之歆6 天前
Day24_JavaScript正则表达式与性能优化实战:从入门到精通
javascript·性能优化·正则表达式
羑悻的小杀马特7 天前
【动态规划篇】正则表达式与通配符:开启代码匹配的赛博奇幻之旅
c++·算法·leetcode·正则表达式
踏过山河,踏过海7 天前
正则表达式
正则表达式