正则表达式----python中实现(re库的基本使用方法)

基本使用方法

方法一

  1. 使用compile()函数将正则表达式的字符串形式编译为一个 Pattern 对象
  2. 通过 Pattern对象提供的方法对文本进行匹配查找,获得匹配结果(一个 Match 对象)
  3. 使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作

方法二

直接使用re中的各种函数

compile 函数

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

Pattern 对象

方法作用
match方法起始位置开始查找,查找一次
search 方法任何位置开始查找,查找一次
findall 方法全部匹配,返回列表
finditer 方法全部匹配,返回迭代器
split 方法分割字符串,返回列表
sub 方法替换查找到的

match对象

匹配成功时会返回一个match对象

匹配对象方法描述
group(n)返回第n个匹配成功的分组 (0代表全部返回)
groups()返回一个包含所有小组字符串的元组
span(n)返回第n个匹配结果的索引

flags参数

参数描述
re.I忽略大小写
re.L表示特殊字符集 \w, \W, \b, \B, \s, \S
re.M多行模式
re.S即为 . 并且包括换行符在内的任意字符
re.U表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S
re.X为了增加可读性,忽略空格和 # 后面的注释

match 方法

match 方法用于查找字符串的头部(也可以指定起始位置),它是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。

写法一

  • pattern.match(string, pos, endpos)
参数描述
string待匹配字符串
pos指定字符串的起始位置,默认为 0
endpos指定字符串的结束位置,默认为字符串的长度

案例

import re
 
pattern = re.compile(r'\d+')   # 查找数字
result1 = pattern.match('3bc24d1542',0)
print(result1)
print(result1.group())
print(result1.groups())
print(result1.span())

在这里插入图片描述

写法二

  • re.match(pattern, string,flags)
参数描述
pattern正则表达式
string匹配字符串

案例

import re
 
pattern = re.compile(r'\d+')   # 查找数字
result1 = pattern.match('3bc24d1542',0)
print(result1)

在这里插入图片描述

findall 方法

全部匹配,返回一个列表

写法一

  • pattern.findall(string, pos, endpos)
参数描述
string待匹配字符串
pos指定字符串的起始位置,默认为 0
endpos指定字符串的结束位置,默认为字符串的长度

案例

import re
 
pattern = re.compile(r'\d*')   # 查找数字
result1 = pattern.findall('abc24d1542',0)
print(result1)

在这里插入图片描述

写法二

  • re.findall(pattern, string,flags)
参数描述
pattern正则表达式
string匹配字符串

案例

import re

result1 = re.findall(r'\d*','abc24d1542')
print(result1)

在这里插入图片描述

finditer 方法

全部匹配,返回迭代器

写法一

  • pattern.finditer(string, pos, endpos)
参数描述
string待匹配字符串
pos指定字符串的起始位置,默认为 0
endpos指定字符串的结束位置,默认为字符串的长度

案例

import re
 
pattern = re.compile(r'\d*')   # 查找数字
result1 = pattern.finditer('abc24d1542',0)
print(result1)

# 迭代获取结果
for i in result1:
	print(i)

在这里插入图片描述

写法二

  • re.finditer(pattern, string,flags)
参数描述
pattern正则表达式
string匹配字符串

案例

import re

result1 = re.finditer(r'\d*','abc24d1542')
print(result1)

# 迭代获取结果
for i in result1:
	print(i)

在这里插入图片描述

split 方法

split 方法按照能够匹配的子串将字符串分割后返回列表

写法一

  • pattern.split(string ,maxsplit)
参数描述
string待匹配字符串
maxsplit指定最大分割次数,不指定将全部分割

案例

import re
pattern = re.compile(r'[\s\,\;]+')
result = pattern.split('a,b;; c   d')
print(result)

在这里插入图片描述

写法二

  • re.split(pattern, string,maxsplit ,flags)
参数描述
pattern正则表达式
string匹配字符串
maxsplit指定最大分割次数,不指定将全部分割

案例

import re
 
result = re.split(r'[\s\,\;]+','a,b;; c   d')
print(result)

在这里插入图片描述

sub 方法

替换查找到的

  • re.sub(repl, string,count)
参数描述
repl用于替换的字符串或者函数
string匹配字符串
count指定替换次数,不知道则全部替换

案例

import re
pattern = re.compile(r'\d+')
result = pattern.sub('x','a2ni68')
print(result)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值