正则表达式(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}$
相关推荐
databook3 天前
面向数据工程师的正则表达式:从日志清洗到字段提取
python·正则表达式·数据分析
小白快快跑哦4 天前
python-字符串全解(六):正则表达式-位置断言
python·正则表达式·位置断言
哭泣方源炼蛊7 天前
正则表达式c++内容汇集
数据库·c++·mysql·正则表达式
划破黑暗的第一缕曙光8 天前
正则表达式使用规则和用例
正则表达式·语法·图表·语法规则·练习用例
小白快快跑哦8 天前
python-字符串全解(六):正则表达式-量词
python·正则表达式·字符串
福兮说8 天前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式
Rebecca_aLi9 天前
码匠教育:零基础学 Python,标识符到循环全套基础语法解析
开发语言·python·正则表达式
IvanCodes9 天前
Python 正则表达式(十四):文本匹配、查找与替换
开发语言·python·正则表达式
FED_AF9 天前
Linux运维“邪修”功法之正则表达式
linux·运维·正则表达式
长按助力退休11 天前
正则表达式从入门到不懵逼
正则表达式