正则表达式超详细版

正则表达式详解与实战

ModelEngine·创作计划征文活动 10w+人浏览 1.4k人参与

一、基本概念

正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换字符串中的特定模式。它通过一系列预定义的语法规则,描述字符串的结构特征,广泛应用于数据验证、文本解析、日志分析、搜索引擎等领域。

二、基础语法(核心元字符与规则)

正则表达式的语法由「普通字符」和「元字符」组成,元字符是具有特殊含义的符号,掌握它们是使用正则的基础。

1. 普通字符

  • 直接匹配自身,无特殊含义(如 ab1、 空格等)。
  • 示例:abc 匹配字符串 "abc"123 匹配 "123"

2. 核心元字符(按功能分类)

元字符 功能说明 示例
. 匹配任意单个字符(默认不匹配换行符 \n,部分语言可通过修饰符改变)。 a.b 匹配 "axb""a1b""a#b"(不匹配 "a\nb")。
^ 匹配字符串开头(多行模式下匹配每行开头)。 ^hello 匹配 "hello world"(开头是 hello),不匹配 "xhello"
$ 匹配字符串结尾(多行模式下匹配每行结尾)。 world$ 匹配 "hello world"(结尾是 world),不匹配 "worldx"
* 匹配前面的元素 0 次或多次(贪婪匹配:尽可能多匹配)。 ab* 匹配 "a""ab""abb""abbb"
+ 匹配前面的元素 1 次或多次(贪婪匹配)。 ab+ 匹配 "ab""abb"(不匹配 "a")。
? 匹配前面的元素 0 次或 1 次(可选匹配)。 ab? 匹配 "a""ab"(不匹配 "abb")。
{n} 匹配前面的元素 恰好 n 次(n 为非负整数)。 a{3} 匹配 "aaa"(不匹配 "aa""aaaa")。
{n,} 匹配前面的元素 至少 n 次(贪婪匹配)。 a{2,} 匹配 "aa""aaa""aaaa"
{n,m} 匹配前面的元素 n 到 m 次(n ≤ m,贪婪匹配)。 a{2,3} 匹配 "aa""aaa"(不匹配 "a""aaaa")。
| 逻辑「或」,匹配左边或右边的模式(优先级最低,需用括号提升优先级)。 ab|cd 匹配 "ab" 或 "cd"a(b|c)d 匹配 "abd""acd"
() 分组:将多个字符视为一个整体,同时捕获匹配结果(可通过反向引用使用)。 (ab)+ 匹配 "ab""abab"(\w+)\s+(\w+) 捕获两个单词(如 "hello world")。
\ 转义字符:取消元字符的特殊含义,或表示预定义字符类(如 \d\s)。 a\.b 匹配 "a.b". 作为普通字符);\* 匹配 "*"
[] 字符类:匹配括号内任意一个字符(支持范围表示,^ 表示否定)。 [abc] 匹配 "a""b""c"[^abc] 匹配非 a/b/c 的字符。
[-] 字符类内的范围符:表示连续字符集(如字母、数字范围)。 [a-z] 匹配小写字母;[0-9] 匹配数字;[a-zA-Z0-9] 匹配字母数字。

3. 预定义字符类(简化写法)

为了简化常见的字符匹配,正则提供了预定义的字符类(部分需结合修饰符使用):

预定义类 等价于 功能说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值