关于正则表达式的一些记录

正则表达式:
操作符 说明 实例
. 表示任何单个字符
[] 字符集,对单个字符给出取值范围 [abc]表示a,b,c[a-z]表示a到z单个字符
[^] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符
前一个字符0次或者无限次扩展abc表示ab,abc,abcc,abccc
+前一个字符1次或者无限次扩展abc+表示abc,abcc,abccc
? 前一个字符0次或1次扩展 abc?表示ab,abc
| 左右表达式任意一个 abc|def表示abc,def
{m} 扩展前一个字符m次 ab{2}c表示abbc
{m,n} 扩展前一个字符m次至n次(含n) ab{1,2}c表示abc,abcc
^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
S 匹配字符串结尾 abc5表示abc且在一个字符串的结尾
() 分组标记,内部只能使用|操作符 (abc)表示abc,(abc|def)表示abc,def
\d 数字,等价于【0-9】
\w 单词字符,等价于【A-Za-z0-9】

匹配IP地址的正则表达式
IP地址分四段,每段0-255
\d+.\d+.\d+.\d+ , \d(1,3).\d(1,3).\d(1,3).\d(1,3)

0-99:[1-9]?\d , 100-199:1\d{2},
200-249:2[0-4]\d 250-255:25[0-5]
所以(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])
re库的使用:
re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

re.match() 从一个字符串的开始位置起匹配正则表达式,返回match对象

re.findall() 搜索字符串,以列表类型返回全部能匹配的子串

re.split() 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

re.finditer() 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象

re.sub() 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
而re.search(pattern , string, flags=0),
pattern=正则表达式的字符串或原生字符串表示
string=待匹配字符串
flags=正则表达式使用时的控制标记

Match对象属性:
.string 待匹配文本
.re 匹配对使用的pattern对象
.pos 正则表达式搜索文本的开始位置
.endpos 正则表达式搜索文本的结束位置

Match对象方法:

.group(0) 获得匹配后的字符串
.start() 匹配字符串在原始字符串的开始位置
.end() 匹配字符串在原始字符串的结束位置
.span() 返回(.start(),end())

re的贪婪和最小匹配:
re默认贪婪匹配,即为最长匹配,
若要进行最小匹配,则操作符为:
*? 前一个字符0次或无限次扩展,最小匹配
+? 前一个字符1次或者无限次扩展,最小匹配
?? 前一个字符0次或者1次匹配,最小匹配
{m,n}? 扩展前一个字符m至n次(含n)最小匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值