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)
#

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

被折叠的 条评论
为什么被折叠?



