Python Re模块

https://mp.weixin.qq.com/s/1YDPrjbf5RWfJE6YN9iCNA

 

Python Re模块

我们可以通过下面的代码导入re库

import re

1. 使用match()方法进行匹配

match()方法用于从字符串的开始处进行匹配,如果在起始位置匹配成功,则返回Match对象,否则返回None,语法如下

re.match(pattern, string, [flags])

  • pattern:表示模式字符串,由要匹配的正则表达式转换而来

  • string:表示要匹配的字符串

  • flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写。

比如匹配字符串是否以"py"开头,不区分大小写代码如下

import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.match(pattern, string, re.I) # re.I表示不区分大小写
print(match)
string = "这是python"
match = re.match(pattern, string, re.I)
print(match)

因为match是用字符串的开头开始匹配的,因为"这是python"这个字符串不是py开始的。所以返回的是None。span这个元组表示匹配的位置,第一个为开始位置,第二个为结束位置。

import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.match(pattern, string, re.I) # re.I表示不区分大小写
print(match)
print("匹配的起始位置:", match.start())
print("匹配的结束位置:", match.end())
print("匹配的元组:", match.span())
print("匹配的字符:", match.string)
print("匹配的数据:", match.group())

2. 使用search()方法进行匹配

search()方法用于在整个字符串中搜索第一个匹配的值,找到就返回Match对象,否则返回None,语法如下:

re.search(pattern, string, [flags])

import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.search(pattern, string, re.I) # re.I表示不区分大小写
print(match)
string = "这是python"
match = re.search(pattern, string, re.I)
print(match)

从运行结果可以看出,这个方法不仅仅在字符串的起始位置搜索,其他位置有符合的匹配也可以。

3. 使用findall()方法进行匹配

findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回。查找不到就返回空列表。

re.findall(pattern, string, [flags])

import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.findall(pattern, string, re.I) # re.I表示不区分大小写
print(match)
string = "这是python"
match = re.findall(pattern, string, re.I)
print(match)

4. 替换字符串

sub方法用于实现字符串替换。在爬虫中很少会用到。等遇到后和大家分享。

5. 用split()方法分割字符串

import re
pattern = r'[?|&]'
url = 'https://search.bilibili.com/live?keyword=IT蜗壳'
result = re.split(pattern, url)
print(result)

这里用?将url分割了两部分

 

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值