Python正则表达式如何进行字符串替换

先来段网上的知识:http://developer.51cto.com/art/201003/188824.htm

Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获。

1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串

  1. result, number = re.subn(regex, newstring, subject) 

2.替换所有匹配的子串(使 用正则表达式对象)

  1. rereobj = re.compile(regex)  
  2. result, number = reobj.subn(newstring, subject)字符串拆分 

Python字符串拆分

  1. reresult = re.split(regex, subject) 

字符串拆分(使用正则表示式对象)

  1. rereobj = re.compile(regex)  
  2. result = reobj.split(subject)匹配 

下面列出Python正则表达式的几种匹配用法:

1.测试正则表达式是否 匹配字符串的全部或部分regex=ur"..." #正则表达式

  1. if re.search(regex, subject):  
  2. do_something() 

else:do_anotherthing()2.测试正则表达式是否匹配整个字符串regex=ur"...\Z" #正则表达式末尾以\Z结束

  1. if re.match(regex, subject):  
  2. do_something()  
  3. else:  
  4. do_anotherthing() 

3. 创建一个匹配对象,然后通过该对象获得匹配细节regex=ur"..." #正则表达式

  1. match = re.search(regex, subject)  
  2. if match:  
  3. # match start: match.start()  
  4. # match end (exclusive): match.end()  
  5. # matched text: match.group()  
  6. do_something()  
  7. else:  
  8. do_anotherthing() 

以上就是对Python正则表达式在字符串替换中的具体介绍。

==================================================================================

再来看个实例:

import re
urlp = "http://www.mypcera.com/star/mm/jiepaimeinv/942{_page}.html&{what}&&{come}"
pageParam = re.findall('{.*?}', urlp)[0]
print(pageParam)
pageParam = pageParam.replace("page", "3").strip("{}")
print(pageParam)
result = re.sub('{.*?}', pageParam, urlp)
print(result)
看下运行结果:

E:\Program\Python>t.py
{_page}
_3
http://www.mypcera.com/star/mm/jiepaimeinv/942_3.html&_3&&_3

明白了吧,真的很简单噢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Violation] Added non-passive event listener to a scroll-blocking ‘mousewheel‘ event.

在基于 Element-ui 写项目的时候,Chrome 提醒: [Violation] Added non-passive event listener to a scroll-blocking ‘mousewheel’ event. Consider marking event handler as ‘passive’ to make the page more responsive. 翻译过来如下&#xf…

ubuntu下集群设置静态ip

hadoop集群时,需要固定集群内计算机相互通信之间的ip地址,但是每次进行网络连接后,ip地址都是变换的,我们希望设置一个用于集群内通信的静态ip,即使重启电脑也不会变化,同样希望能够正常的访问互联网。 sud…

新书出版:《Android深度探索(卷1):HAL与驱动开发》

《Android深度探索(卷1):HAL与驱动开发》【1】亚马逊【2】当当网【3】京东商城【4】互动网【5】淘宝网【6】豆瓣网 《 Android深度探索(卷1):HAL与驱动开发》分为4篇,分别从搭建开发环境&#x…

python对时间日期做格式化

From: http://www.cnblogs.com/65702708/archive/2011/04/17/2018936.html Python格式化日期时间的函数为datetime.datetime.strftime();由字符串转为日期型的函数为:datetime.datetime.strptime(),两个函数都涉及日期时间的格式化字符串&…

element-ui中表单验证rules

我们在项目中头疼的是什么?对,你没有听错,就是表单验证,各种非空校验,正则校验等等 而初次使用element-ui,在做表单验证的时候,由于项目急,自己呢,也没有时间去研究这个…

图像熵的意义以及计算

熵(entropy)指的是体系的混乱的程度,它在控制论、概率论、数论、天体物理、生命科学等领域都有重要应用,在不同的学科中也有引申出的更为具体的 定义,是各领域十分重要的参量。熵由鲁道夫克劳修斯(Rudolf C…

python,时间加减,时间计算,时间格式化,时间提取汇总

From: http://bbs.chinaunix.net/thread-1371304-1-1.html 不知道这么写题目会不会让人误会,不过这个题目可以让从搜索引擎上搜索问题的菜鸟们一下找到这篇帖子 这篇是集合了N多大大的方法 上半部是时间加减 下半部是格式化 感谢 xiaoyu9805119 carrison 3227049 …

验证视图状态 MAC 失败

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载&#xff0c;请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate解决方法&#xff1a;这种错误一般是因为在网页代码中有浏览器不支持的标签或标签的位置放置不正确…

async-validator 表单验证两种数据的解决方案

上问题&#xff1a; 下面选项中后台给的value 有 number和 string 两种导致无法验证 解决方案 rules: [,{type: "string",required: true,message: 编码项目至少一项,trigger: change,transform(value) {var baseif(value){//在select中转换要加这个判断//因为sele…

米的建站日记(2014年12月15日)

今天试着定义了一个音乐实体如下图&#xff1a; 然后搜了下mongdb数据库层的框架&#xff0c;发现大部分都是用spring的&#xff0c;然后又去找相关的教程和demo&#xff0c;找到了 http://blog.csdn.net/cuiran/article/details/8287204 这篇博文&#xff0c;但是用在我自己的…

axios发送请求(baseURL有多个的情况)

首先baseURL只有一个的情况&#xff1a; 先安装一下axios: npm install axios --save request.js import axios from axios export function request(config){//1.创建axios的实例const instance axios.create({baseURL:http://152.136.185.210:8000/api/n3})//发送真正的网络…

sql语句按月份统计查询

select year(createdate) 年,month(createdate) 月,count(1) from public_cms_arcwhere (userid in (select id from cms_admin where userid392) or userid392)group by year(createdate),month(createdate)order by year(createdate) desc,month(createdate) desc 转载于:ht…

/etc/shadow 文件详解

/etc/shadow 文件详解用户帐户本身在 /etc/passwd 中定义。Linux 系统包含一个 /etc/passwd 的同伴文件&#xff0c;叫做 /etc/shadow。该文件不像 /etc/passwd&#xff0c;只有对于 root 用户来说是可读的&#xff0c;并且包含加密的密码信息。我们来看一看 /etc/shadow 的一个…

VIM 正则表达式搜索字符串

From: http://blog.csdn.net/fengxinze/article/details/6870106 在插入模式下&#xff0c;为了减少重复的击键输入&#xff0c;VIM 提供了若干快捷键&#xff0c;当你要输入某个上下文曾经输入过的字符串时&#xff0c;你只要输入开头若干字符&#xff0c;使用快捷键&#xff…

vue-cli 3.0集成sass/scss到vue项目

尝鲜使用vue-cli 3.0.0-beta.6&#xff0c;很容易就可以完成scss到vue项目中。 vue-cli 3提供了两种方式集成sass/scss&#xff1a; 创建项目是选择预处理器sass 手动安装sass-loader 创建项目选择预处理器sass $ vue create vuedemo ? Please pick a preset: (Use arrow ke…

技术面试官的一些建议

感叹时光匆匆如水&#xff0c;眨眼睛&#xff0c;已毕业近3年&#xff0c;仿佛还记得大四那年到处面试求Offer的场景&#xff0c;想想那时候的自己&#xff0c;再看看如今&#xff0c;已经从被面试者变成面试官。下面&#xff0c;介绍下自己的做面试官的一些心得&#xff0c;如…

RIP实验总结之一被动接口和单播更新

后续的小实验&#xff1a;RIP实验总结之二RipV2的手动汇总RIP实验总结之一rip v2的认证前言&#xff1a;以前觉得rip只需要学NA的那种水平就行了&#xff0c;但在后来自己的许多实验中不断做过不少rip相关的实验&#xff0c;在这总结一下。实验目的&#xff1a;1) 掌握r…