Python正则表达式(1)

#用来处理字符串,对字符串进行检索和替换
#1、查找  2、替换
import re
x='hello\\nworld'
print(x)                       #hello\nworld

#第一个参数就是正则匹配规则
#第二个参数表示需要匹配的字符串
#在正则表达式里,如果想要匹配一个 \ 需要 \\\\
m = re.search('\\\\',x)
#在正则表达式里,还可以在字符串前面加r,\\就表示 \
re.search(r'\\',x)
# search和match方法的执行结果是一个match类型的对象
print(m)                        #<re.Match object; span=(5, 6), match='\\'>y

#正则查找相关内容
#match和search :
#共同点:1、只对字符串查询一次  2、返回值类型都是re.match类型的对象
#不同点:match 是从头开始匹配,一旦匹配失败,就返回None;search是在整个字符串里匹配
#finditer:查找所有的匹配数据放到一个可迭代对象里
# 返回的结果是一个可迭代对象,对象里的数据是匹配到的所有结果,是一个re.match类型的对象
#需要for循环打印
#findall:把查找到的所有字符串结果放在一个列表里
#fullmatch:完整匹配,字符串要完全满足正则规则才会有结果,否则就是None

m1 = re.match(r'hello','hello world good morning')
print(m1)     #<re.Match object; span=(0, 5), match='hello'>
m2 = re.match(r'good','hello world good morning')
print(m2)     #None
m3 = re.search(r'hello','hello world good morning')
print(m3)     #<re.Match object; span=(0, 5), match='hello'>
m4 = re.search(r'good','hello world good morning')
print(m4)     #<re.Match object; span=(12, 16), match='good'>

#span 匹配到的结果字符串的开始和结束下标
#group可以获取匹配的字符串结果,可以传参,表示第n个分组
#1、在正则表达式里使用( )表示一个分组
#2、如果没有分组,默认只有一个分组
#3、分组的下标从0开始
#  .表示任意字符     *表示出现任意次数
#以下正则表达式有四个分组
m1 = re.search(r'(9.*)(0.*)(7.*5)','fjifj9jjfuj0ifjfj7jfjfjhyg5hdhwfun')
print(m1.group(0))     #第0组就是把整个正则表达式当做一个整体   9jjfuj0ifjfj7jfjfjhyg5
print(m1.group())      #默认就是拿第0组
print(m1.group(1))     #9jjfuj
print(m1.group(2))     #0ifjfj
print(m1.group(3))     #7jfjfjhyg5
print(m1.groups())     #('9jjfuj', '0ifjfj', '7jfjfjhyg5')
#(?P<name>表达式)      可以给分组起一个名字
s = re.search(r'(9.*)(?P<name>0.*)(7.*5)','fjifj9jjfuj0ifjfj7jfjfjhyg5hdhwfun')
print(s.groupdict())   #{'name': '0ifjfj'}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值