re 正则

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 表示原生字符串,不用使用 \ 转义

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值