re 模块方法
match
匹配以…开头的字符串
r = re.match(正则, str)
r.goup()
search
匹配查找到第一次满足条件的字符串
r = re.search(正则, str)
r.group()
findall
匹配所有满足条件的字符串,返回列表
r = re.findall(正则, str)
sub
替换匹配到的结果
r = re.sub(正则, 替换成的字符串/替换函数, str)
import re
string = "aaa100aaa"
r = re.sub(r"\d+", "99", string)
print(r)
或
import re
def func(temp):
strNum = temp.group()
num = int(strNum) + 1
return str(num)
string = "aaa100aaa"
r = re.sub(r"\d+", func, string)
print(r)
split
以匹配结果切割原字符串,返回切割列表
r = re.split(正则, str)
通配符
匹配单个字符(字符)
.
匹配出\n以外的一个字符
[ ]
匹配[ ]中列举的一个字符
\d
匹配数字0-9
\D
匹配非数字
\s
匹配空白:空格,tab键
\S
匹配非空白
\w
匹配单词字符:a-z, A-Z, 0-9, _
\W
匹配非单词字符
匹配多个字符(数量)
*
匹配前一个字符0或多次
+
匹配前一个字符1或多次, 至少1次
?
匹配前一个字符0或1次
{m}
匹配前一个字符m次
{m,n}
匹配前一个字符m-n次
非贪婪匹配
数量匹配符后加 “?”
非贪婪匹配, 匹配到第一个满足的停止, 或匹配到以…结尾停止
re.match(r"(\d+)", "12345aaa").goup(1)
12345
re.match(r"(\d+?)", "12345aaa").goup(1)
1
re.match(r"(\d+)aaa", "12345aaa").goup(1)
12345
re.match(r"(\d+?)aaa", "12345aaa").goup(1)
12345
匹配开头/结尾
^
匹配以…开头的字符串
$
匹配以…结尾的字符串
分组匹配
|
匹配左右任意一个表达式
()
括号中字符作为一个分组
\num
引用第num个分组匹配到的字符串(从1开始)
(?P<name>)
给分组起名
(?P=name)
引用别名为name的分组匹配到的字符串
r的作用
python 中字符串前加 r 表示原生字符串,不用使用 \ 转义