python学习笔记:正则表达式

在这里插入图片描述
在这里插入图片描述

re.I	使匹配对大小写不敏感
re.L	做本地化识别(locale-aware)匹配
re.M	多行匹配,影响 ^ 和 $
re.S	使 . 匹配包括换行在内的所有字符
re.U	根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X	该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

import re

懒惰匹配

Str = “abcdacsdn”
regexL = "a.*?d"
regL = re.compile(regexL)
listL = re.findall(regL, str)
print(listL)

懒惰匹配结果
[‘abcd’, ‘acsd’]

贪婪匹配

Str = “abcdacsdn”
regexT = "a.*d"
regT = re.compile(regexT)
listT = re.findall(regT, str)
print(listT)

贪婪匹配结果
[‘abcdacsd’]

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 
print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配

(0, 3)
None

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

print(re.search('abc','abcdegf').span())

(0, 3)

print(re.search('egf','abcdegf').span())

(4, 7)

re.sub

用于替换字符串中的匹配项

phone="2004-959-559 # 啊哈哈"
num = re.sub(r'#.*$',"",phone)
print("电话号码:",num)
---------------------------------------------------------
输出:电话号码: 2004-959-559
num = re.sub(r'\D',"",phone)
print("电话号码:",num)
------------------------------------------
输出:电话号码: 2004959559

re.compile

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象

a = re.compile(r'(\D+)(\d+)')
m = a.match('asdwf123dwf2344asdwf')
print(m)
-----------------------------------------------------
输出<re.Match object; span=(0, 8), match='asdwf123'>
a = re.compile(r'(\D+)(\d+)')
m = a.findall('asSADwf123dwf2344asdwf')
print(m)
----------------------------------------------
输出[('asSADwf', '123'), ('dwf', '2344')]

re.finditer

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

it = re.finditer(r"\d+","12a32bc43jf3") 
for match in it: 
    print (match.group() )

输出:
12
32
43
3

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值