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


Posted in Python onSeptember 18, 2019

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 相关文章推荐
Python实现从百度API获取天气的方法
Mar 11 Python
python使用chardet判断字符串编码的方法
Mar 13 Python
Python类属性与实例属性用法分析
May 09 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
python 快速把超大txt文件转存为csv的实例
Oct 26 Python
Python实现插入排序和选择排序的方法
May 12 Python
Djang的model创建的字段和参数详解
Jul 27 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 Python
教你使用pyinstaller打包Python教程
May 27 Python
Python基础知识学习之类的继承
May 31 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 #Python
用Python写一个自动木马程序
Sep 17 #Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 #Python
Python中*args和**kwargs的区别详解
Sep 17 #Python
python SocketServer源码深入解读
Sep 17 #Python
Python @property使用方法解析
Sep 17 #Python
Python爬取知乎图片代码实现解析
Sep 17 #Python
You might like
PHP 批量删除 sql语句
2009/06/05 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python 常见的排序算法实现汇总
2020/08/21 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
百度软件工程师职位
2013/02/14 面试题
房地产融资计划书
2014/01/10 职场文书
自荐信如何制作?
2014/02/21 职场文书
装配出错检讨书
2014/09/23 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
班主任开场白
2015/06/01 职场文书
外出考察学习心得体会
2016/01/18 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL