Python中的正则表达式常用函数re模块

Python中的正则表达式常用函数
1.大批量文本的解析最好提前编译正则表达式

# 正则re模块的compile函数方法可以返回一个正则表达式的对象,方便大批量的文本匹配,节省计算机资源
q = re.compile(r'src="(.*)" width')
# 将上面的正则表达式对象方法调用出来可以返回出匹配出的对象
#findall方法返回一个列表对象,是所有符合条件的匹配项,如果正则表达式有括号的话那么将会返回的是正则表达式里面括号匹配的字符串,传递的正则表达式没有括号的话将会返回出整个正则表达式匹配的字符串组成的列表
e = q.findall(b)

2.小批量的匹配的话可以直接调用re的方法传递正则表达式来匹配

import re

re.search(test_pattern, test_str)
# re.search 扫描整个字符串并返回第一个成功的匹配对象,如果整个字符串匹配完一个都没找到则返回None
如下

test_str = 'www.runoob.com.wwww'
test_pattern = 'w*'
search_ret = re.search(test_pattern, test_str)
print(type(search_ret))
# <class 're.Match'>
print(search_ret)
# <re.Match object; span=(0, 3), match='www'>

print(search_ret.string)
# www.runoob.com

print(search_ret.group(0))
# www

print(search_ret.group(1))
# IndexError: no such group


=============================================================
re.match('com', 'www.runoob.com')
#这里的match方法是意思从这个目标字符串中的第一个字符开始匹配,匹配出来就返回匹配的对象,匹配不出来的话他会返回None
=============================================================
# 替换方法,参数依次是前,后,要处理的文本对象,返回值直接就是处理过的文本对象,直接打印
num = re.sub(r'#.*$', "", phone))
================================================================
group()方法

#group方法是search或者match等方法返回出的re对象的方法,由这些对象直接调用

# 处理一般需要用到group方法,注意这里的group方法使用默认参数的话等价于
# group(0),group(0)返回的整个匹配到的 文本(也就是整个正则表达式匹配的文
# 本包含正则表达式括号外面的和括号里面的),而如果是group(n)其中n非零的话
# 返回的就是第几个()中的正则匹配出来的文本   如下
searchObj.group()
# 匹配符没有括号情况
test_str = 'www.runoob.com.wwww'
test_pattern = 'w*'
search_ret = re.search(test_pattern, test_str)

print(search_ret.group(0))
# www

print(search_ret.group(1))
# IndexError: no such group

# 匹配符有括号情况1  
test_str = 'www.runoob.com.wwww'
test_pattern = '(w*).ru'
search_ret = re.search(test_pattern, test_str)

print(search_ret.group(0))
# www.ru

print(search_ret.group(1))
# www

# 匹配符有括号情况2
test_str = 'www.runoob.com.wwww'
test_pattern = '(w*)'
search_ret = re.search(test_pattern, test_str)

print(search_ret.group(0))
# www

print(search_ret.group(1))
# www

===========================================================================

# re.findall()方法 会返回所有的符合条件的匹配出来的结果字符串组合的  “”“列表”“”

re.findall()
#  不带括号
test_str = 'www.runoob.com.wwww'
test_pattern = 'w+.run'
search_ret = re.findall(test_pattern, test_str)

print(search_ret)
# ['www.run']

#  带括号1
test_str = 'www.runoob.com.wwww'
test_pattern = '(w+)'
search_ret = re.findall(test_pattern, test_str)

print(search_ret)
# ['www', 'wwww']

#  带括号2
test_str = 'www.runoob.com.wwww'
test_pattern = '(w+).run'
search_ret = re.findall(test_pattern, test_str)

print(search_ret)
# ['www']


其它博客参照

参照二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值