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 开发者节省时间的10个方法
Oct 02 Python
简单的python后台管理程序
Apr 13 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
Python基于百度云文字识别API
Dec 13 Python
python3正则提取字符串里的中文实例
Jan 31 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
详解Python多线程下的list
Jul 03 Python
python基于opencv 实现图像时钟
Jan 04 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 Python
Python实现滑雪小游戏
Sep 25 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
第三节 定义一个类 [3]
2006/10/09 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python随机数分布random测试
2018/08/27 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
护理实习自我鉴定
2013/12/14 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
项目采购员岗位职责
2014/04/15 职场文书
天那边观后感
2015/06/09 职场文书
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技