python字符串替换re.sub()方法解析

 更新时间:2019年09月18日 09:06:29   作者:郭雪原  
这篇文章主要介绍了python字符串替换re.sub()方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

pattern可以是一个字符串也可以是一个正则,用于匹配要替换的字符,如果不写,字符串不做修改。\1 代表第一个分组

repl是将会被替换的值,repl可以是字符串也可以是一个方法。如果是一个字符串,反斜杠会被处理为逃逸字符,如\n会被替换为换行,等等。repl如果是一个function,每一个被匹配到的字段串执行替换函数。

\g<1> 代表前面pattern里面第一个分组,可以简写为\1,\g<0>代表前面pattern匹配到的所有字符串。

count是pattern被替换的最大次数,默认是0会替换所有。有时候可能只想替换一部分,可以用到count

实例1:

a = re.sub(r'hello', 'i love the', 'hello world')
print(a)<br data-filtered="filtered">'i love the world'  #hello world里面的hello被 i love the替换

实例2:

>>> a = re.sub(r'(\d+)', 'hello', 'my numer is 400 and door num is 200')
>>> a
'my numer is hello and door num is hello' #数字400 和 200 被hello替换

实例3:

a = re.sub(r'hello (\w+), nihao \1', r'emma','hello sherry, nihao sherry')
>>> a
'emma' #\1代表第一个分组的值即sherry,因为有两个sherry,所以用\1可以指代第二个,这样整个字符串被emma替换

示例4:

>>> a = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2-\3-\1', '2018-06-07')
>>> a
'06-07-2018'
>>> a = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\g<2>-\g<3>-\g<1>', '2018-06-07')
>>> a
'06-07-2018' #\2 和 \g<2> 指代的的都是前面的第二个分组

示例5:

import re
def replace_num(str):
  numDict = {'0':'〇','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九'}
  print(str.group())
  return numDict[str.group()]
my_str = '2018年6月7号'
a = re.sub(r'(\d)', replace_num, my_str)
print(a) #每次匹配一个数字,执行函数,获取替换后的值

和sub()函数一样,只是返回的是一个tuple,替换后的字符串和替换的个数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python目标检测基于opencv实现目标追踪示例

    python目标检测基于opencv实现目标追踪示例

    这篇文章主要为大家介绍了python基于opencv实现目标追踪示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用Python测试Ping主机IP和某端口是否开放的实例

    使用Python测试Ping主机IP和某端口是否开放的实例

    今天小编就为大家分享一篇使用Python测试Ping主机IP和某端口是否开放的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pycharm如何关闭pytest

    pycharm如何关闭pytest

    这篇文章主要介绍了pycharm如何关闭pytest问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 关于yolov8训练的一些改动及注意事项

    关于yolov8训练的一些改动及注意事项

    Yolo是一种目标检测算法,目标检测的任务是从图片中找出物体并给出其类别和位置,这篇文章主要给大家介绍了关于yolov8训练的一些改动及注意事项,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • python实现翻译word表格小程序

    python实现翻译word表格小程序

    这篇文章主要为大家详细介绍了python翻译word表格小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python使用redis模块来跟redis实现交互

    python使用redis模块来跟redis实现交互

    这篇文章主要介绍了python使用redis模块来跟redis实现交互,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Python中zip()函数的简单用法举例

    Python中zip()函数的简单用法举例

    这篇文章主要给大家介绍了关于Python中zip()函数的简单用法,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • PyQT5之使用QT Designer创建基本窗口方式

    PyQT5之使用QT Designer创建基本窗口方式

    这篇文章主要介绍了PyQT5之使用QT Designer创建基本窗口方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python实现删除排序数组中重复项的两种方法示例

    Python实现删除排序数组中重复项的两种方法示例

    这篇文章主要介绍了Python实现删除排序数组中重复项的两种方法,涉及Python数组元素的遍历、判断、删除等相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • python进行图像边缘检测的详细教程

    python进行图像边缘检测的详细教程

    相信大家对于边缘检测这几个词并不陌生,但是相对于如何处理,如何进行图像的边缘检测却无能为力、束手无策了,下面这篇文章主要给大家介绍了关于python进行图像边缘检测的详细教程,需要的朋友可以参考下
    2023-04-04

最新评论