python正则

import re
#findall,从左到右全部将待匹配对象检查一遍,根据正则,匹配所有符合田间的数据

#findall,前边一个参数为正则表达式,后面一个参数为待匹配对象,返回值是一个列表,将匹配到的结果以元素的形式放在列表中,若没有匹配到,则返回一个空列表

res = re.findall(‘a’,‘abdhafhjafgajkas’)

print(res)

res1 = re.search(‘a’,‘abdhafhjafgajkas’)

#search,根据正则,匹配到一个符合条件的数据就停止,返回值是一个对象,如果没找到,返回值就是none,取值的时候用.group(),

group取到的值是字符串类型,如果没有匹配到就会报错

print(res1)#<re.Match object; span=(0, 1), match=‘a’>

print(res1.group(),type(res1.group()))#a <class ‘str’>

#match,根据正则,从开头匹配,匹配到一个符合条件的数据就停止,如果开头匹配不上,那么就停止匹配,返回值是一个对象,如果没找到,返回值就是none,取值的时候用.group(),

# group取到的值是字符串类型,如果没有匹配到就会报错

res2 = re.match(‘a’,‘bdhafhjafgajkas’)

print(res2) #None

# print(res2.group(),type(res2.group())) #此处会报错

针对search,match,可以如下书写代码

res3 = re.match(‘a’,‘bdhafhjafgajkas’)

if res3:

print(res3.group(), type(res3.group()))

else:

print(‘没有匹配到相应的值’)

‘’’
res = re.finditer(‘a’,‘bdhafhjafgajkas’) #将匹配到的结果生成一个迭代器对象
print(res)

print(res.next().group())
‘’’

无名分组:使用小括号括起来的正则表达式就是无名分组,按照索引顺序取值

常用

res = re.search(‘1(\d{14})(\d{2}[0-9x])?$’,‘110105199812067023’)

print(res)

print(res.group()) # 110105199812067023

print(res.group(1)) # 10105199812067

print(res.group(2)) # 023

findall针对分组优先展示 无名分组

“”"

如果是findall,分组优先展示,无名分组

“”"

res = re.findall(“2(\d{14})\d{2}[0-9x]?$”,‘110105199812067023’)

print(res) # [‘023’]

有名分组:使用小括号括起来的正则表达式然后给起个名字就是有名的

res = re.search(‘3(?P\d{14})(?P\d{2}[0-9x])?$’,‘110105199812067023’)

print(res)

print(res.group(1))

print(res.group(2))

print(res.group(‘xxx’))

print(res.group(‘ooo’))

with open(r’中国红牛官网源码.txt’,‘r’,encoding=‘utf_8’) as f:
date = f.read()
import re
res = re.findall(‘

(.*?)

’,date)

print(res)

res1 = re.findall(“

(.*?)

”,date)

print(res1)

res3 = zip(res,res1)
print(list(res3))


  1. 1-9 ↩︎

  2. 1-9 ↩︎

  3. 1-9 ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值