正则表达式基础

引言

学习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 仅匹配字符串结尾,等价于$

捕获组

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

  • 圆括号 () 内的正则表达式定义了一个捕获组。
  • 每个捕获组匹配的文本可以被捕获并存储,通常用于后续的引用或操作。
相关推荐
吴声子夜歌2 天前
正则指引——Ruby
开发语言·正则表达式·ruby
吴声子夜歌2 天前
正则指引——Golang
开发语言·golang·正则表达式
吴声子夜歌3 天前
正则指引——PHP
开发语言·正则表达式·php
吴声子夜歌5 天前
正则指引——断言
正则表达式
吴声子夜歌5 天前
正则指引——匹配原理
java·正则表达式
吴声子夜歌6 天前
正则表达式——环视
开发语言·正则表达式
吴声子夜歌7 天前
正则表达式——边界
正则表达式
营养充电站7 天前
C++23 新特性在 CLion 中的实战体验
macos·docker·jupyter·正则表达式
吴声子夜歌7 天前
正则表达式——字符组
正则表达式