文本处理

本文深入探讨了Python中正则表达式的应用技巧,包括如何使用match、search和fullmatch等函数进行文本匹配,以及如何在多行模式下进行精确查找。通过实例演示了正则表达式在文本处理中的强大功能。

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

文本处理

分组命名

(?

\D+)
在python环境中要加上大写的P: (?P
\D+)

python环境中使用正则表达式

match

#打印出s的分解后的带有序
import re
s = """bottle\nbag\nbig\napple"""
for i,c in enumerate(s,1):
    print((i-1,c),end='\n' if i%10==0  else ' ')

(0, 'b') (1, 'o') (2, 't') (3, 't') (4, 'l') (5, 'e') (6, '\n') (7, 'b') (8, 'a') (9, 'g')
(10, '\n') (11, 'b') (12, 'i') (13, 'g') (14, '\n') (15, 'a') (16, 'p') (17, 'p') (18, 'l') (19, 'e')
r = re.match('b', s)
print(type(r),r)

<class '_sre.SRE_Match'> <_sre.SRE_Match object; span=(0, 1), match='b'>
#r的类型是一个match,span为(0,1),前包后不包,第一个元素'b'
r = re.match('b', s)
print(r)

None

match只从头找,第一个是的话就出来结果。只要第一个不是,就返回None
在没有设定模式的情况下,默认是单行模式,
先编译,然后使用正则表达式

regex = re.compile('a')
result = regex.match(s)
print(result)

None

仍然是从头开始找,这次设置从字符串为15的开始找

regex = re.compile('a')
result = regex.match(s,15)
print(result)

<_sre.SRE_Match object; span=(15, 16), match='a'>

search

search是扫描找到匹配的第一个位置就返回

result = re.search('a',s)
print(result)

<_sre.SRE_Match object; span=(8, 9), match='a'>

多行模式下,找以a开头的,在15处找到了:

regex = re.compile('^a',re.M)
result = regex.search(s,8)
print(result)

<_sre.SRE_Match object; span=(15, 16), match='a'>

fullmatch

全长完全匹配,即是将整个字符串完全匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值