问题

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

解决方案

为了在文本操作时忽略大小写,你需要在使用 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() 函数除了接受替换字符串外,还能接受一个回调函数。

讨论

对于一般的忽略大小写的匹配操作,简单的传递一个 re.IGNORECASE 标志参数就已经足够了。 但是需要注意的是,这个对于某些需要大小写转换的 Unicode 匹配可能还不够。

python忽略大小写的搜索_【Python 秘籍】字符串忽略大小写的搜索替换 -相关推荐

  1. python装饰器哪个好_[Python] 对 Python 装饰器的理解心得

    最近写一个py脚本来整理电脑中的文档,其中需要检校输入的字符,为了不使代码冗长,想到使用装饰器. 上网搜索有关python的装饰器学习文档,主要看的是AstralWind的一篇博文,以及Limodou ...

  2. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  3. 四全集学python选哪种电脑_“Python教程哪个版本最适合学习?“python教程全集

    python教程,求一套比较好的python教程 好不好主要先看你自己,理解能力样,有没有接触过编程,有没础,这很重要: 看教程,能不能先给你建立起知识体系框架,许多教程一上来就直接给你灌输知识很让人 ...

  4. python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境

    一如既往地, 咱们不仅仅是学习 Python 的基础知识, 同时, 也按照2/8 规律学习关键知识的关键部分 - python 核心词汇 如何安装 Python 下载 Python 打开网址:http ...

  5. python小软件制作教程_[Python]手把手教程:Python制作番茄钟

    这篇文章是根据Udacity的免费课程 编程基础:Python所做的笔记,适合零基础学习Python 我们先了解这个番茄钟的概念,就是每隔一段固定的时间就提醒你休息一下,可能是播放一段音乐, 弹出一个 ...

  6. python如何检验显著性差异_[Python] 如何证明两组样本有显著性差异(t-test假设检验) | 学步园...

    现有两组样本数据,假如它们分别基于两套不同的方法,或者测于不同的设备,又或是出自两个人之手,如何证明它们有或没有显著性差别呢?当然可以拿个Excel表把数据画个图,然后找一堆人来投票,看觉得差不多还是 ...

  7. 广度优先搜索_计算机入门必备算法——广度优先遍历搜索

    1.  序言 又很久没有学习了,上次学到哈希表又称散列表的相关知识,这次我们学习一种新的数据结构来建立网络模型.这种数据结构被称作图.首先,我们先应该先了解一下什么是图,其次学习第一种图的算法,这种图 ...

  8. git 如何忽略掉文件夹_如何使git忽略某些文件或文件夹

    为什么要忽略某些文件或文件夹的变化? git作为一款项目文件变更版本管理软件,其主要功能之一就是追踪项目文件夹内各种文件及文件夹的变更情况.但是,在日常使用中,并非项目文件夹下的所有文件及文件夹变更都 ...

  9. github issue 搜索_恕我直言,你可能连 GitHub 搜索都不会用 - 如何精准搜索的神仙技巧...

    大家好,我是你们的 前端章鱼猫,一个不喜欢吃鱼.又不喜欢喵的超级猫 ~ 今天给大家带来的是 在 GitHub 上如何精准搜索的神仙技巧.[前端GitHub],专注于挖掘 GitHub 上优秀的前端开源 ...

  10. 字符串大小写转换html,用JavaScript将字符串进行大小写转换的方法

    用JavaScript将字符串进行大小写转换的方法 发布时间:2020-08-31 11:58:46 来源:亿速云 阅读:201 作者:小新 这篇文章主要介绍了用JavaScript将字符串进行大小写 ...

最新文章

  1. JVM对象分配回收算法
  2. jstl mysql_java – jsp jstl sql与mysql中的奇怪行为
  3. 基于python的视频监控系统_Python实现微信监控报警系统
  4. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!
  5. php jwt token 解析,JSON Web Token(JWT)入坑详解
  6. hdu 3746 kmp的next数组理解
  7. 信息架构:看不到不代表不存在
  8. Linux的百度云有限速吗,mac(linux)下配置aria2解决百度云限速问题
  9. PS CC 2014 把一个图层输出为文件的方法
  10. ah、esp、gre协议_AH,ESP的协议号和它们支持的功能有何差异?两种模式下的差异是什么?...
  11. matlab计算方阵对应特征值的特征向量
  12. 阿里巴巴Mysql规范
  13. 【Android】解决aab上传Google Play后下载语言文件缺失的问题
  14. 万丈高楼平地起,开始给Java打地基
  15. 什么是云计算和大数据?他们之间的区别是什么?
  16. 学习分布式系统需要的知识
  17. c语言Ox5516,采药 (C语言代码)
  18. 孤独后厂村,码农的故乡:30万互联网人跳不出的中国硅谷
  19. Java读取Hdfs的文件数据出现乱码的解决方案和办法
  20. Gym - 101611G God of Winds 思路思路思路 2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest

热门文章

  1. 点赞模块的设计及优化
  2. 告别搜狐拥抱腾讯,搜狗会不会再次撬动搜索江湖?
  3. P2-Vue-supermall项目-初始化目录结构
  4. SkiaSharp 自绘弹幕效果
  5. SOLARIS维护命令
  6. online-shop项目相关
  7. C++ std::pair
  8. 数据交易平台,数据交易三种模式,
  9. 杰理之获取 MP3 文件的比特率【篇】
  10. Windows2008 r2 x64下安装FTP服务器File Zilla server报错:could not load tls libraries filezilla