Python(09)正则表达式
特殊字符
1. 基本元字符
.
:匹配除换行符以外的任意单个字符。
*
:匹配前面的元素零次或多次。
+
:匹配前面的元素一次或多次。
?
:匹配前面的元素零次或一次。
2. 定量符
{n}
:匹配前面的元素恰好 n 次。
{n,}
:匹配前面的元素至少 n 次。
{n,m}
:匹配前面的元素至少 n 次,但不超过 m 次。
3. 字符类
[abc]
:匹配方括号内的任意一个字符(在这个例子中是 a、b 或 c)。
[^abc]
:匹配不在方括号内的任意一个字符(在这个例子中是除了 a、b 和 c 以外的任何字符)。
[a-z]
:匹配指定范围内的任意一个字符(在这个例子中是从 a 到 z 的任意一个小写字母)。
\d
:匹配任意一个数字,等同于 [0-9]。
\D
:匹配任意一个非数字字符,等同于 [^0-9]。
\w
:匹配任意一个字母数字字符,包括下划线,等同于 [a-zA-Z0-9_]。
\W
:匹配任意一个非字母数字字符,包括下划线,等同于 [^a-zA-Z0-9_]。
\s
:匹配任意一个空白字符,包括空格、制表符、换页符等,等同于 [ \t\n\r\f\v]。
\S
:匹配任意一个非空白字符,等同于 [^ \t\n\r\f\v]。
4. 锚点
^
:匹配输入字符串的开始位置。
$
:匹配输入字符串的结束位置。
\b
:匹配单词边界。
\B
:匹配非单词边界。
5. 分组和引用
(abc)
:将 abc 视为一个整体进行匹配,并捕获该分组。
(?:abc)
:将 abc 视为一个整体进行匹配,但不捕获该分组。
\1、\2
等:引用之前捕获的分组。
6. 选择
a|b
:匹配 a 或 b。
7. 转义字符
\
:用于转义特殊字符,例如 . 匹配实际的点号,而不是任意字符。
常用方法
- 1.
re.search(pattern, string[, flags])
在字符串中搜索第一个与正则表达式模式匹配的结果,返回一个Match对象,如果没有找到匹配项则返回None。 - 2.
re.match(pattern, string[, flags])
从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None。 - 3.
re.fullmatch(pattern, string[, flags])
如果整个字符串完全匹配正则表达式模式,则返回一个Match对象,否则返回None。 - 4.
re.findall(pattern, string[, flags])
返回字符串中所有与正则表达式模式匹配的子串,作为一个列表返回。 - 5.
re.finditer(pattern, string[, flags])
返回一个迭代器,其中每个元素都是一个Match对象,对应于字符串中所有与正则表达式模式匹配的部分。 - 6.
re.sub(pattern, repl, string[, count, flags])
将字符串中所有与正则表达式模式匹配的部分替换为指定的字符串,并返回替换后的字符串。 - 7.
re.split(pattern, string[, maxsplit, flags])
根据正则表达式模式分割字符串,返回一个列表,包含分割后的各个部分。 - 8.
re.compile(pattern[, flags])
编译正则表达式模式,返回一个正则表达式对象,可以用于后续的匹配操作,提高效率。