最简单的查找替换

在Python中查找和替换非常简单,如果当前对象是一个字符串str时,你可以使用该类型提供的find() 或者index() 方法查找指定的字符,如果能找到则会返回字符第一次出现的索引,如果不存在则返回-1。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

>>> s = 'Cat and Dog'>>>
s.find('Dog')8>>>
s.index('Dog')8>>>
s.find('Duck')-1

如果要替换目标字符串,用replace() 方法就好了。

>>> s = 'Cat and Dog'>>>
s.replace('Cat', 'Dog')'Dog and Dog'

通配符查找匹配

当然,如果你觉得上面的功能还不能满足你,你想使用通配符来查找字符串?没问题!fnmatch这个库就能满足你的要求,看例子!

>>> s = 'Cat and Dog'
>>> import fnmatch
>>> fnmatch.fnmatch(s,'Cat*')True
>>> fnmatch.fnmatch(s,'C*and*D?')
False
>>> fnmatch.fnmatch(s,'C*and*D*')
True

正则表达式查找替换

如果你需要查找比较复杂的字符规则,正则表达式是你不二的选择。下面是正则查找的简单示例。

>>> import re
>>> s = 'We will fly to Thailand on 2021/8/7'
>>> pattern = r'd+'
>>> re.findall(pattern, s)['2021', '9', '7']
>>> re.search(pattern, s)<_sre.SRE_Match object at 0x03A8FD40
>>>> re.search(pattern, s).group()'2021'

接下来你可能需要用正则表达式去替换某些字符,那么你需要了解re.sub() 方法,看例子。

>>> s = "I like {color} car."
>>> re.sub(r'{color}','blue',s)'I like blue car.'
>>> s = 'We will fly to Thailand on 10/31/2016'
>>> re.sub('(d+)/(d+)/(d+)', r'--', s)
'We will fly to Thailand on 2021-8-7'

其实re.sub() 远比你相像的强大的多。在上面的例子里你可以替换类似于 {color} 这样的模板字符,也可以把正则匹配到的所有分组调换顺序,例如第二个例子一共匹配了3个分组,然后把第3个分组放到最前面 r’–’ ,看明白了吗?所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

接下来看另外一个例子。

s = "Tom is talking to Jerry.
"name1 = "Tom"name2 = "Jerry"
pattern = r'(.*)({0})(.*)({1})
(.*)'.format(name1, name2)
print re.sub(pattern, r'', s)
# Jerry is talking to Tom.

其实你还可以自定义替换函数,也就是re.sub() 的第二个参数。

def change_date(m):
from calendar import month_abbr mon_name = month_abbr
[int(m.group(1))]
return '{} {} {}'
.format(m.group(2),
mon_name, m.group(3))
s = 'We will fly to Thailand on 8/7/2021'
pattern = r'(d+)/(d+)/(d+)'
print re.sub(pattern, change_date, s)
# We will fly to Thailand on 7 Oct 2021

最后给大家一个终极版的例子,里面用到了函数的闭包,着酸爽,你懂的!

def match_case(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 replaces = "LOVE PYTHON,
love python, Love Python"print re.sub('python',
match_case('money'), s,
flags=re.IGNORECASE)# LOVE MONEY,
love money, Love Money

写在最后

其实正则表达式还有很多玩法,如果你想让正则和通配符混合着用,一点问题都没有,因为fnmatch还有一个translate() 的方法,可以让你把通配符无痛转换成正则表达式,你爱怎么玩就怎么玩。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

fnmatch.translate(‘CandD*’)

‘C.*and.D.

Python学习书籍推荐

很多人在问,学习Python读什么书,这其实是一个非常通用的问题,学习分为2种方式:看书、上课,而读书学习是最实惠也是最高效的一种,小编整理了一些Python高分书籍给大家,从0基础到高级适合不同学习阶段,希望大家学习愉快。获取方式:点击小编头像,关注后私信回复“资料”即可下载。

在Python中查找和替换文本,玩转Python正则相关推荐

  1. python字符串之查找与替换_在Python中查找和替换文本

    最简单的查找替换 在Python中查找和替换非常简单,如果当前对象是一个字符串str时,你可以使用该类型提供的find()或者index()方法查找指定的字符,如果能找到则会返回字符第一次出现的索引, ...

  2. python docx 替换文字_在.docx文件-Python中查找和替换文本

    我一直在寻找一种方法来查找和替换docx文件中的文本,但运气不好.我试过docx模块,但没能成功.最后,我使用zipfile模块并替换docx存档中的document.xml文件,得出了下面描述的方法 ...

  3. Microsoft Word 教程:如何在 Word 中查找和替换文本?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中查找和替换文本. 如果处理大量文本,并需要搜索替换某个单词或短语,可使用 ...

  4. 如何在Excel中查找和替换文本和数字

    查找和替换工具是 Excel 的一个强大但经常被遗忘的功能.让我们看看如何使用它来查找和替换电子表格中的文本和数字,以及它的一些高级功能. 在 Excel 中查找和替换文本和数字 处理大型电子表格时, ...

  5. Microsoft Word 教程「2」,如何在 Word 中查找和替换文本?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中查找和替换文本. 如果处理大量文本,并需要搜索替换某个单词或短语,可使用 ...

  6. html实现文本的查找与替换,在 InDesign 中查找并替换文本

    在对文档进行修订时,"查找并替换"操作将很有用.您可以全局查找并替换文本.对象.字体.字形和颜色. "查找/更改"对话框 A. 查找/更改选项卡 B. &quo ...

  7. python中列表长度查询,从零开始学Python|如何在Python中查找列表的长度?

    Python中的列表是有序且可更改的集合数据类型.列表也可以有重复的条目.所述的PythonLEN()方法被用于找到任何对象的长度.在本文中,我们将按以下顺序学习如何在python中查找列表的长度: ...

  8. JS实现文本中查找并替换字符

    JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head><style type=" ...

  9. 查找和替换文本和其他 Word 文档中的数据(转)

    今天看一段vba代码,目的去除段首空格,替换的时候查找的文字是^w,不知其意,然后搜索去了 参考:http://zhidao.baidu.com/link?url=dPoOamRVLkY-WpD6v5 ...

最新文章

  1. DB2锁表或超时解决方案
  2. 源码安装postgresql
  3. leetcode算法题--分割等和子集★
  4. python 调用 so 库 需要注意的地方
  5. 【收藏】Docker安装微信
  6. linux开通vsftpd服务过程
  7. 1月16日学习内容整理:存储库MongoDB之文档的增删改查操作补充
  8. 2152:聪聪可可(点分治)
  9. oracle迁移性能对比,SQL Server 2015与Oracle性能对比.doc
  10. 活动目录集成区域DNS服务
  11. jQuery报错:Uncaught ReferenceError: $ is not defined
  12. [leetcode] 11.盛最多水的容器
  13. 操作系统如何恢复到原先状态
  14. 微信公众平台基础开发--禾今微信投票系统
  15. python 构建建模无标度网络
  16. Unity贴图ASTC压缩格式
  17. Nginx 配置根据表示进行PC与移动的跳转
  18. 性别单选框jsp_jsp获取单选按钮的值源码实例
  19. 链塔智库|区块链产业要闻及动态周报(2021年8月第3周)
  20. android 布局覆盖 超出一部分_谈谈移动端屏幕适配的几种方法

热门文章

  1. AI生成的代码你敢用吗?
  2. 学习超大神经网络,CPU超越V100 GPU,靠的居然是哈希?
  3. 为何IDEA比Eclipse更好!
  4. 啥?修改下 URL 就能高速下载网盘资源和百度文库?
  5. 自然语言处理(NLP)之依存句法分析的可视化及图分析
  6. 在python中使用json格式存储数据
  7. MATLAB_4-形态学_腐蚀_膨胀_灰度图的腐蚀以及膨胀_开运算_闭运算_文章末尾有几个素材例子
  8. 论文不公开代码,应该被直接拒稿?
  9. 使用深度学习和OpenCV的早期火灾检测系统
  10. 论文笔记 | CNN 是怎么学到图片绝对位置信息的