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

问题

你需要以忽略大小写的方式搜索与替换文本字符串。

解法

为了在文本操作时忽略大小写,你需要在使用 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 wordreturn replace

下面是使用上述函数的方法:

>>> re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
'UPPER SNAKE, lower snake, Mixed Snake'
>>>

讨论

对于一般的忽略大小写的匹配操作,简单的传递一个 re.IGNORECASE 标志参数就已经足够了。

《Python Cookbook 3rd》笔记(2.6):字符串忽略大小写的搜索替换相关推荐

  1. python中ignorecase_【Python进阶】2.6字符串忽略大小写的搜索替换 re.IGNORECASE

    2.6 字符串忽略大小写的搜索替换 问题 你需要以忽略大小写的方式搜索与替换文本字符串 解决方案 为了在文本操作时忽略大小写,你需要在使用 re 模块的时候给这些操作提供 re.IGNORECASE ...

  2. python中ignorecase_Python: re.IGNORECASE 标志参数字符串忽略大小写的搜索替换

    为了在文本操作时忽略大小写,需要在使用re 模块的时候给这些操作提供re.IGNORECASE 标志参数.比如 >>> text = 'UPPER PYTHON, lower pyt ...

  3. python忽略大小写的搜索_【Python 秘籍】字符串忽略大小写的搜索替换 -

    问题 你需要以忽略大小写的方式搜索与替换文本字符串 解决方案 为了在文本操作时忽略大小写,你需要在使用 re 模块的时候给这些操作提供 re.IGNORECASE 标志参数.比如: >>& ...

  4. python忽略大小写_Python字符串忽略大小写实现搜索和替换

    为了针对字符串操作忽略大小写,我们可以使用re模块的时候利用re.IGNORECASE标记参数来达到效果,示例如下: #!/usr/bin/env python3 # _*_coding:utf-8_ ...

  5. python cookbook 读书笔记2(字符串处理2)

    1.8检查字符集中是否包含某字符集中的字符,在以下几个例子中,也就是检查seq是否包含aset中的项,各函数中Any结尾是部分包含,也就是只要有其中元素就返回true,All结尾的是全部包含,必须包含 ...

  6. 《Python Cookbook 3rd》笔记汇总

    文章目录 一.数据结构 二.字符串和文本 三.数字.日期和时间 四.迭代器与生成器 五.文件与IO 一.数据结构 标题 关键词 1.1:拆分序列后赋值给多个变量 可迭代对象.拆分赋值 1.2:拆分任意 ...

  7. 《Python cookbook》笔记二

    <Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...

  8. Python Cookbook学习笔记ch2_01

    第二章,也可以去这里查看笔记噢虫洞在这里 2.1使用多个界定符分隔字符串 问题:将一个字符串分隔为多个字段,但是分隔符并不是固定的 方案:string对象的split() 只适用于简单的字符串分隔,他 ...

  9. 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素

    <Python Cookbook 3rd>1.4:查找最大或最小的N个元素 问题 怎样从一个集合中获得最大或者最小的N个元素列表? 解法 heapq 模块有两个函数:nlargest()和 ...

最新文章

  1. sourcetree管理git
  2. [置顶]       加载事件js代码
  3. C++,那些可爱的小陷阱(三)
  4. Tomcat6.0启动startup.bat一闪而过
  5. 对python中浅拷贝和深拷贝分析详细介绍
  6. EditPlus构建轻量级编译环境
  7. 注解Annotation的IoC:从@Autowired到@Component
  8. Html5 小球键盘移动
  9. 安装oracle12c之前,centos7安装oracle12c数据库的坑
  10. IDEA访问不到SpringBoot项目webapp下的内容
  11. 查询记录rs.previous()使用
  12. aliyun阿里云视频直播播放器代码
  13. 林轩田 《机器学习基石》学习笔记
  14. 哔哩哔哩电脑网页版怎么下载视频
  15. 【WSL2 Win10】解决子系统中nividia-smi出现的Failed to initialize NVML GPU access blocked by the operating systeM
  16. 计算机在智能制造专业中的应用,数控技术在智能制造中的应用及发展分析
  17. VC中三种常见中文内码的转换方法
  18. 计算机语言市场份额,21年7月编程语言排名:python上升迅速,others占比最高
  19. RabbitMQ详解及其特性
  20. 计算机操作题蝴蝶效应,办公自动化上机操作测试题

热门文章

  1. 如何使用autotools工具
  2. 抖音最强python_装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案...
  3. net能和python结合吗_如何不用安装python就能在.NET里调用Python库
  4. idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...
  5. 【转】azure认证路线以及学习资源
  6. C#多线程之旅(1)——介绍和基本概念
  7. 第十七节:易混淆的概念(静态和非静态、拆箱和装箱)
  8. ROS入门_1.10 理解ROS服务和参数
  9. 数据结构中“图”的相关概念理解
  10. 【Python学习】 - plt画图时,添加标题的中英文问题