python字符串与文本处理技巧(2):大小写敏感搜索、最短匹配、多行匹配、Unicode标准化

本文介绍了Python字符串处理的四个关键技巧:使用`re.IGNORECASE`进行大小写敏感搜索,通过非贪婪模式实现最短匹配,启用`re.DOTALL`进行多行匹配,以及利用`unicodedata.normalize`进行Unicode标准化,解决不同字符编码表示相同文本的问题。

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

1. 字符串忽略大小写的搜索替换

  • re.findall(patter, string, flags=re.IGNORECASE)

当我们需要忽略字符串中的字母大小写进行模式搜索时可以采用如下方案:

import re
text = 'UPPER PYTHON, lower python, Mix Python'
target1 = re.findall('python', text, flags=re.IGNORECASE)
print(target1)
# >>> ['PYTHON', 'python', 'Python']

target2 = re.sub('python', 'snake', text, flags=re.IGNORECASE)
print(target2)
# >>> UPPER snake, lower snake, Mix snake

2. 最短匹配模式

如果我们正在试着用正则表达式匹配某个文本模式但是它找到的是模式的最长可能匹配。 而我们想修改它变成查找最短的可能匹配。这个问题一般出现在需要匹配一对分隔符之间的文本的时候(比如引号包含的字符串)。考虑如下的例子:

from re import compile

str_pat = compile(r'"(.*)"')
text1 = 'computer says "no."'
target1 = str_pat.findall(text1)
print(target1)
# >>> ['no.']

text2 = 'computer says "no.", but phone says "yes."'
target2 = str_pat.findall(text2)
print(target2)
# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值