Python: re.IGNORECASE 标志参数字符串忽略大小写的搜索替换
为了在文本操作时忽略大小写,需要在使用re 模块的时候给这些操作提供re.IGNORECASE 标志参数。比如
>>> text = 'UPPER PYTHON, lower python, Mixed Python'
>>> re.findall('python', text, flags=re.IGNORECASE)
['PYTHON', 'python', 'Python']
>>> re.sub('python', 'snake', text, flags=re.IGNORECASE)
'UPPER snake, lower snake, Mixed snake'
>>>
最后的那个例子揭示了一个小缺陷,替换字符串并不会自动跟被匹配字符串的大小写保持一致。为了修复这个,你可能需要一个辅助函数,就像下面的这样:
def matchcase(word):
def replace(m):
text = m.group()
if text.isupper():
return word.upper()
elif text.islower():
return word.lower()
elif text[0].isupper():
return word.capitalize()
else:
return word
return replace
下面是使用上述函数的方法:
>>> re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
'UPPER SNAKE, lower snake, Mixed Snake'
>>>
注: matchcase('snake') 返回了一个回调函数(参数必须是match 对象), sub() 函数除了接受替换字符串外,还能接受一个回调函数。
最新文章
- epoll LT/ET 深度剖析
- Qt界面编程之多窗口切换
- JavaScript原型链问题
- 关于c语言二维数组与指针的个人理解及处理办法。
- 八大排序算法之六--交换排序—快速排序(Quick Sort)
- 【转】nginx的优缺点
- ACM——快速排序法
- Linux crontab定时执行任务 命令格式与详细例子
- [JavaScript]plupload多图片上传图片
- javascript将form表单中的元素值封装成json格式
- myEclipse笔记(1):优化配置
- MATLAB - 为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像?
- 如何用一个语句判断一个整数是不是二的整数次幂——从一道简单的面试题浅谈C语言的类型提升(type promotion)
- Linux 文本行列转换
- Java基础学习笔记十六 集合框架(二)
- English trip V2 - A 1. Fastival Teacher:Julia Key:
- 5.使用std的迭代器访问并修改图像
- canvas离屏技术与放大镜实现
- 小程序布局中class='container'的bug
- __slots__,__doc__,__del__,__call__,__iter__,__next__迭代器协议(三十六)
热门文章
- 基于ELK的简单数据分析
- 数据库操作相关(sql语句-php)
- linux定时任务cron配置说明
- xtrabackup安装部署(二)
- JVM JRE JDK三者的区别和联系
- ELK之生产日志收集构架(filebeat-logstash-redis-logstash-elasticsearch-kibana)
- Django运算符表达式
- mongostat和mongotop对mongodb数据库运行状态进行监控
- Python:lambda表达式(匿名函数)
- Cloud Native Application理论备忘录之(一)——Microservice architectural style