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