正则表达式基础

引言

学习re模块之前 要先了解 正则表达式 更好的去使用和理解re模块

正则表达式

正则表达式是对字符串操作的一种逻辑公式,它会将事先定义好的一些特定字符,以及这些特定字符的组合,组成一个规则字符串,并且通过这个规则字符串表达对给定字符串的过滤逻辑。

一条正则表达式也称为一个模式,使用每个模式可以匹配指定文本中与表达式模式相同的字符串。正则表达式由 普通字符 、元字符 或 预定义字符集组成,其中普通字符包括大小写字母和数字。

元字符

元字符 说明
. 匹配任何一个字符(换行符除外)
^ 匹配字符串的开头
$ 匹配字符串的末尾
| 连接多个子表达式,匹配与任意子表达式模式相同的字符串
\[\] 字符组,匹配其中出现的任意一个字符
- 连字符,匹配指定范围内的任意一个字符
? 匹配其 前导字符 0次 或 1次
* 匹配其 前导字符 0次 或 多次
+ 匹配其 前导字符 1次 或 多次
{n} 匹配其 前导字符 n 次
{m,n} 匹配其 前导字符 m ~ n 次
() 分组,匹配子组
.* 贪婪匹配 :表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符, 当使用.*时,默认情况下,正则表达式引擎会尽可能多地匹配字符,这称为贪婪匹配 它会匹配从字符串开头到 正则表达式 之间的所有内容
.*? 惰性匹配 :懒惰量词告诉正则表达式引擎尽可能少地匹配字符。使用.*?时,引擎会尽可能少地匹配字符直到它找到匹配模式的剩余部分。

预定义字符

预定义字符 说明
\w 匹配下画线"_"或任何字母(a~z,A~Z)与数字(0~9)
\s 匹配任意的空白字符,等价于\<空格\>\\t\\r\\n\\f\\v
\d 匹配任意数字,等价于0-9
\b 匹配单词的边界
\W 与\w相反,匹配非字母或数字或下画线的字符
\S 与\s相反,匹配任意非空白字符的字符,等价于\^\\s
\D 与\d相反,匹配任意非数字的字符,等价于\^\\d
\B 与\b相反,匹配不出现在单词边界的元素
\A 仅匹配字符串开头,等价于^
\Z 仅匹配字符串结尾,等价于$

捕获组

捕获组是正则表达式中的一个概念,它允许你从匹配的文本中提取子字符串。在正则表达式中,捕获组通过使用圆括号 () 来定义。

  • 圆括号 () 内的正则表达式定义了一个捕获组。
  • 每个捕获组匹配的文本可以被捕获并存储,通常用于后续的引用或操作。
相关推荐
BruceXu5 天前
\b 在中文里会静默失效:三个正则坑和一份能用的字符边界方案
正则表达式
阿昭L6 天前
正则表达式
正则表达式·编译原理
波力海苔夹心脆6757 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing038 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦10 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义
小白快快跑哦12 天前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
MoRanzhi120312 天前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
临床数据科学和人工智能兴趣组13 天前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
小白快快跑哦14 天前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
小白快快跑哦15 天前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符