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() 函数除了接受替换字符串外,还能接受一个回调函数。
Python: re.IGNORECASE 标志参数字符串忽略大小写的搜索替换的更多相关文章
- Spring Mvc Url和参数名称忽略大小写
		
在开发过程中Spring Mvc 默认 Url和参数名称都是区分大小写的 比如:www.a.com/user/getUserInfo?userId=1 www.a.com/user/getuserIn ...
 - Python自学:第二章 修改字符串的大小写 titile.()、upper()、lower()
		
title.():首字母大写 upper():全大写 lower():全小写 ada lovelace:人名,传控计算机创始人 name = "ada lovelace" prin ...
 - C#中正则表达式进行忽略大小写的字符串替换
		
在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式. 要使用正则表达式,首先需要引用命名空间: ...
 - vim 查找时忽略大小写
		
:set ic 忽略大小写#ignorecase :set noic 不忽略大小写#noignorecase
 - Linux忽略大小写的查找技巧(转)
		
1.vim 中的查找 Linux 下 vim搜索文件内容时加上 \c 参数可以忽略搜索字符的大小写. 比如用vim 搜索文件中的 China 时 可用 :/china\c 2. find 查找 Lin ...
 - C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)
		
头文件:#include <string.h> 定义函数:int strcasecmp (const char *s1, const char *s2); 函数说明:strcasecmp( ...
 - Java字符串替换忽略大小写
		
今天在做字符串替换时忽略大小写,网上找到了一个非常简便的方法,使用String的replaceAll方法. java.lang.String.replaceAll(String regex, Stri ...
 - AC日记——忽略大小写的字符串比较 openjudge 1.7 16
		
16:忽略大小写的字符串比较 总时间限制: 1000ms 内存限制: 65536kB 描述 一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII ...
 - OpenJudge计算概论-忽略大小写比较字符串大小
		
/*======================================================================= 忽略大小写比较字符串大小 总时间限制: 1000ms ...
 
随机推荐
- FastDFS  client for  .net
			
fastDfs Code: https://code.google.com/p/fastdfs/ FastDfs_Client_DotNet:https://code.google.com/p/fas ...
 - linux下jmeter持续集成Jenkins部署时问题解决
			
之前成linux下安装了Jenkins,并做了一些简单的工作,这次正好将jmeter也集成进去,在实际操作时发现好多坑,写下做记录 怎么安装这里就不介绍了,网上很多资料,这里只记录问题,以供大家参数 ...
 - laravel composer install 报错解决方法
			
composer install 报错信息: 报错原因参考:http://blog.csdn.net/yicixing7/article/details/55050140 解决方法: 把compose ...
 - create view in view
			
CREATE VIEW view_region2role AS ( SELECT region_set_id, region_set_name, GROUP_CONCAT(id) gc_id, GRO ...
 - ONLYstore_name+AdWord
			
情景描述ONLYstore_name+AdWord 基础表数据表 BASE_TABLEAdWord food drink1w1 1f1 1d12w2 2f_ 2d_3w1 ...
 - Rhino
			
http://shrinksafe.dojotoolkit.org/ a JavaScript interpreter
 - 懂点PS技巧,你会减少很多痛苦
			
UI设计 不像平面设计那样随性, 期间可以用点技巧来减少痛苦. 1. 设置网格线 保持像素完美 不在1:1分辨率下也能保持像素完美,可以通过创建网格线来避免虚边的出现. 编辑 > 首选项 > ...
 - javaScript高级教程(四) 复制对象
			
//返回新对象,双方互不影响 function clone(obj){ //alert('clone'); if(typeof(obj) != 'object') return obj; if(obj ...
 - 理解SQL SERVER中的逻辑读,预读和物理读
			
转自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻 ...
 - 混淆矩阵在Matlab中PRtools模式识别工具箱的应用
			
声明:本文用到的代码均来自于PRTools(http://www.prtools.org)模式识别工具箱,并以matlab软件进行实验. 混淆矩阵是模式识别中的常用工具,在PRTools工具箱中有直接 ...