正则表达式(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}$
相关推荐
饼干哥哥2 天前
10.5% 深层转化、90%+ 新用户,ChatGPT Ads 值得吗?
算法·正则表达式·编程语言
饼干哥哥3 天前
Seedance TK视频「真人感」问题的 9 个解法
正则表达式·代码规范·设计
逝水无殇4 天前
C# 正则表达式详解
开发语言·后端·正则表达式·c#
木木子228 天前
# 密码强度检测深度解析:正则表达式实时分析、多维度评分算法与可视化反馈
mysql·算法·华为·正则表达式·harmonyos
饼干哥哥9 天前
用Claude Code跑通跨境电商的5大场景,顶10个人的团队
人工智能·设计模式·正则表达式
饼干哥哥10 天前
单篇100万阅读文章,如何用AI 做好内容创作?
人工智能·正则表达式·代码规范
无足鸟ICT11 天前
【RHCA+】扩展正则表达式
linux·正则表达式
无足鸟ICT13 天前
【RHCA+】正则表达式
linux·正则表达式
Full Stack Developme14 天前
正则表达式的使用教程
java·数据库·正则表达式
Full Stack Developme14 天前
正则表达式设计及工作原理
数据库·mysql·正则表达式