Python中正则表达式小结(其一)

本文深入解析了正则表达式的各种元字符及其使用场景,包括边界匹配、重复次数及字符表示等,并详细介绍了Python re模块的使用方法,如match、search、findall等函数的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

元字符

(1)匹配边界
       ^ -----行首
       $ ----- 行尾
(2)重复次数
       ? ----- 0或1
       * ----- ≥0
       + ----- ≥1
       {n,}----- ≥n
       {n,m}----- ≥n,≤m
       {n} ----- 重复n次
(3)各种字符的表示
       [] —表示单字符
       [abc] —匹配a、b、c其中的一个。
       [a-z]
       [0-9a-zA-Z_]
       \d 数字
       \w 数字字母下划线
       \s 空白字符(空格,制表、换行)
       \b 单词的开始和结束
       .匹配任意字符,除换行符以外。

re模块使用的步骤

(1)pattern = re.compile(‘正则表达式’)将正则表达式编译成一个pattern对象。
(2)pattern提供一系列的方法,来对文本进行匹配,一般返回一个match对象。
(3)通过使用match对象提供的方法来获取匹配结果。
match对象有以下方法:
       match.group(0)----获取匹配结果
       match.group()----获取匹配结果
       match.span()----获取匹配范围
       match.start()—匹配开始位置
       match.end()—匹配结束位置

import re
pattern = re.compile(r'\d+')
content = 'one12twothree34four'
m1 = pattern.match(content)#从0位置开始匹配
m2 = pattern.match(content,2,10)#从e位置开始匹配
m3 = pattern.match(content,3,10)#从1位置开始匹配
print(m3.group())
print(m3.group(0))
print(m3.span())
print(m3.start())
print(m3.end())

pattern对象的方法

(1)match方法:默认从头开始匹配,只匹配一次,返回一个match对象。
       pattern.macth(
       ‘要匹配的字符串’,必须指定,
       start,匹配的开始位置
       end,匹配的结束位置。
       )---->match对象
(2)serach方法:从任意位置匹配,只匹配一次,返回一个match对象。
       pattern.search(
       ‘要匹配的字符串’,必须指定,
       start,匹配的开始位置
       end,匹配的结束位置。
       )---->match对象

(3)findall:全文匹配,将匹配到的结果放到一个list中返回给我们,多次匹配。
       pattern.findall(
       ‘要匹配的字符串’,必须指定,
       start,匹配的开始位置
       end,匹配的结束位置。
       )---->list

(4)finditer:全文匹配,多次匹配,返回一个包含匹配结果的迭代器。
       pattern.finditer(
       ‘要匹配的字符串’,必须指定,
       start,匹配的开始位置
       end,匹配的结束位置。
       )---->iteror
(5)split:切分字符串,按照整个表达式所指定的内容切分。
       str.split(’,’)
       pattern.split(
       ‘要切分的字符串’,
       切分的次数。不指定就是默认,默认全部切割
       )---->list
(6)sub:用指定的字符串,替换正则表达式匹配的到目标字符串的内容。
       pattern.sub(
       repl,替换成什么。
       content,替换什么。
       count,可以不指定,替换的次数。默认替换所有。
       )
repl可以是字符串,也可以是函数。
当repl是函数的时候,这个函数有一下要求:
1,函数必须带一个参数,这个参数是一个match对象。

	def func(match):
		'''
		对match对象的操作。
		'''
		print(macth.group())

2.当在sub方法里面传入这个参数时,这个match对象其实就是用正则匹配到的每一个match对象。
3.这个函数是有返回值的,返回值必须是一个字符串,将来是用这个字符串进行替换目标字符串的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值