正则表达式(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}$
相关推荐
踏着七彩祥云的小丑10 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
bosins11 天前
密码复杂度验证正则表达式
正则表达式
小森林之主11 天前
正则表达式零宽断言实战:凌晨3点的服务器报警
python·正则表达式·零宽断言·服务器报警·正则速查
小森林之主11 天前
Python re 模块速查:从实战对比中掌握正则表达式
python·正则表达式·性能测试·re模块·编程实战
程序猿零零漆12 天前
Python进阶之路:正则表达式、高级语法与核心数据结构(链表、二叉树)全解析
数据结构·python·正则表达式
2301_7818335213 天前
Python 正则表达式入门教程
开发语言·python·正则表达式
五阿哥永琪14 天前
正则表达式
数据库·mysql·正则表达式
小森林之主14 天前
深入正则表达式:核心语法与实战剖析
javascript·python·正则表达式·编程技巧·字符串处理
小森林之主14 天前
JavaScript 正则表达式:从零开始的实战对比
javascript·正则表达式·前端开发·性能对比·文本处理
不吃土豆的马铃薯14 天前
C++ 正则表达式入门详解
linux·服务器·网络·数据库·c++·正则表达式