python 正则表达式 sub_python 正则表达式 re.sub re.subn

python正则表达式模块简介

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emacs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块,当然偶尔你还是可能在老代码里发现其踪影。

就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。使用这个小型语言,你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地址、TeX命令或任何你想搞定的东西。然后你可以问诸如“这个字符串匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”。你也可以使用 RE 以各种方式来修改或分割字符串。

正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。在高级用法中,也许还要仔细留意引擎是如何执行给定 RE ,如何以特定方式编写 RE 以令生产的字节码运行速度更快。本文并不涉及优化,因为那要求你已充分掌握了匹配引擎的内部机制。

正则表达式语言相对小型和受限(功能有限),因此并非所有字符串处理都能用正则表达式完成。当然也有些任务可以用正则表达式完成,不过最终表达式会变得异常复杂。碰到这些情形时,编写 Python 代码进行处理可能反而更好;尽管 Python 代码比一个精巧的正则表达式要慢些,但它更易理解。

正则表达式一个比较常见的用途是找到所有模式匹配的字符串并用不同的字符串来替换它们。sub方法提供一个替换值,可以是字符串或函数,和一个要被处理的字符串。

Grammar:

re.sub(pattern, repl, string[, count])

使用repl替换string中每一个匹配的子串后返回替换后的字符串。

当repl是一个字符串时,可以使用\id或\g、\g引用分组,但不能使用编号0。

当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。

count用于指定最多替换次数,不指定时全部替换。

re.subn(pattern, repl, string[, count])

返回 (sub(repl, string[, count]), 替换次数)。

Case:

#coding=utf-8

import re

str = "https://i.cnb1logs.co2m/Edi3tPosts.asp4x?opt=999"

pattern=re.compile(r'(\.)')

print '\. :' ,re.sub(pattern,'-',str)

pattern=re.compile(r'\/([^*]+)\/')

print '\/([^*]+)\/ :' ,re.sub(pattern,r'\1',str)

pattern = re.compile(r'(\w+)(\w+)(\d+)')

#先切片测试

print re.split(pattern,str)

print re.sub(pattern,r'\3 \1',str)

#subn统计sub替换次数

print re.subn(pattern,r'\3 \1',str)

Output

\. : https://i-cnb1logs-co2m/Edi3tPosts-asp4x?opt=999

\/([^*]+)\/ : https:/i.cnb1logs.co2mEdi3tPosts.asp4x?opt=999

['https://i.', 'cn', 'b', '1', 'logs.', 'c', 'o', '2', 'm/', 'Ed', 'i', '3', 'tPosts.', 'as', 'p', '4', 'x?opt=', '9', '9', '9', '']

https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9

('https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9', 5)

***Repl Closed***

总结

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

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

相关文章

清浊音判别 matlab,matlab语音信号处理如何判别清浊音?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是我一个学长给的程序,他说里面要算得基本上已经实现了改一下就可以用了。。。但是i本人不是主攻matlab的说白了就是不怎么会,,想问下该怎么改来实现判断清浊音的功能。%对语音信号采样分帧cle…

python upper_Python 3中的模块级string.upper函数在哪里?

如何让这段代码在3中运行? 请注意,我不是"foo".upper()在字符串实例级别询问。import string try: print("string module, upper function:") print(string.upper) foo string.upper("Foo") print("foo:%s" % …

python数据科学实践 常象宇_Python数据科学实践

章基于Python的数据科学环境搭建1.1Python是数据科学“大势所趋”1.2Anaconda入门——工欲善其事,必先利其器1.3JupyterNotebook入门1.4Markdown单元格的使用1.5Spyder入门1.6小结第2章Python基础2.1“火锅团购数据”简介2.2读写数据2.3Python数据类型与结构2.4控制…

matlab emd功率谱密度,【脑电信号分类】脑电信号提取PSD功率谱密度特征

脑电信号是一种非平稳的随机信号,一般而言随机信号的持续时间是无限长的,因此随机信号的总能量是无限的,而随机过程的任意一个样本函数都不满足绝对可积条件,所以其傅里叶变换不存在。不过,尽管随机信号的总能量是无限…

小甲鱼python课后题简书_Python练习题100道

1.有四个数字:1,2,3,4,能组成多少个互不相同且无重复数字的三位数?各是多少? 方法一:遍历所有可能,把重复的剃掉。 total0 for i in range(1,5): for j in range(1,5): for k in range(1,5): if((i!j)and(j…

决策算法python_GitHub - nxety/MachineLearning_Python: 机器学习算法python实现

机器学习算法Python实现目录1、代价函数其中:下面就是要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近共有m条数据,其中代表我们要拟合出来的方程到真实值距离的平方,平方的原因是因为可能有负值&…

php7.1安装mysqli扩展,centos php7 安装mysqli扩展心得

在新配服务器时发现,php无法连接到mysql。通过phpinfo发现。根本没有显示mysqli的相关配置。经过一系列研究。总结了下。:第一步:在phpinfo里没有mysqli配置,原因是安装php7时没有configure mysqli安装php方法:wget ht…

组装服务器配置清单_2020年组装电脑配置清单列表

随着电脑技术的不断革新,越来越多的家庭都有各式各样的电子设备。而电脑现在基本上是家家都有的物品,可是在购买电脑的时候新手小白需要注意那些事项呢?今天我们就给告诉小白如何组装电脑以小白组装电脑配置清单。1、购买电脑,您首…

oracle 关于归档的视图,oracle 与归档日志相关的几个视图

归档日志占据的数据库举足轻重的位置,以下系统视图来了解归档日志情况V$ARCHIVEV$ARCHIVED_LOG 已归档日志详单V$ARCHIVE_GAP 归档日志丢失V$ARCHIVE_PROCESSES 归档进程信息V$ARCHIVE_DEST 查看备份路径情况V$ARCHIVE_DEST_STATUSv$recovery_f…

mysql python is not installed_最全的解决安装MySQL-Python出现的问题: pip install MySQl-Python 出现:下列问题...

问题 1:Microsoft Visual C 9.0 is required error: Microsoft Visual C 9.0 is required 在Windows下用pip安装MySQl-Python报如下错误,看错误提示就知道去http://aka.ms/vcpython27找解决方法了 error: Microsoft Visual C 9.0 is required (Unable to…

python旋转数组_Python3实现旋转数组的3种算法

一、试题给出一个数组,将数组中的元素往右边移动k个位置,当中k是非负数。比如说:输入:[1,2,3,4,5,6,7]和k3输出:[5,6,7,1,2,3,4]解释:往右边旋转1步:[7,1,2,3,4,5,6]往右边旋转2步:[6,7,1,2,3,4,5]往右边旋转3步:[5,6,7,1,2,3,4]*反映&#x…

python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...

# -*- coding: utf-8 -*- def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( format_word.__len__() - 3 2位小数 ) change_number 支持 float, int, long, string """ format_word ["分", "角", &quo…

count数据库优化oracle,迷惑性SQL性能问题排查与优化

:数据科学、人工智能从业者的在线大学。数据科学(Python/R/Julia)数据分析、机器学习、深度学习作者简介戴秋龙,拥有超过八年的电信、保险、税务行业核心系统ORACLE数据库优化,优化经验,具备丰富的行业服务背景。对Oracle数据库有…

python getopt参数参数自动补全_如何在Python中使用getopt / OPTARG?如果给出过多的参数(9),如何转移参数?...

How to use getopt/optarg in Python?解决方案This is an example of how I do it, I usually use the same basic template:import sysimport getopttry:opts, args getopt.getopt(sys.argv[1:], m:p:h, [miner, params, help])except getopt.GetoptError:usage()sys.exit(2…

python读取数据库数据类型_Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】...

本文实例讲述了Python实现从SQL型数据库读写dataframe型数据的方法。分享给大家供大家参考,具体如下: Python的pandas包对表格化的数据处理能力很强,而SQL数据库的数据就是以表格的形式储存,因此经常将sql数据库里的数据直接读取为…

oracle客户端三种连接,客户端连接ORACLE的几种方法

一、HOSTNAME方法对于网络结构比较单一,Oracle服务器比较少的情况下,可以使用HOSTNAME方法。不过这种方法有几个限制:1、 必须使用TCP/IP协议2、 不能使用高级管理工具,比如Oracle Connection Manager3、 客户端必须有相应的扩展命…

swiper.js pagination指示点不变_电缆故障点的四种实用测定方法

一、电缆故障的种类与判断无论是高压电缆或低压电缆,在施工安装、运行过程中经常因短路、过负荷运行、绝缘老化或外力作用等原因造成故障。电缆故障可概括为接地、短路、断线三类,其故障类型主要有以下几方面:①三芯电缆一芯或两芯接地。②二…

oracle undo段的作用,Oracle数据库中Undo数据段的作用及类型

Undo数据段的作用:事务回滚(Transaction Rollback):程序执行rollback操作。事务修复(Transaction Recovery):rollback是recovery的一部分。读取一致(Read Consistency):根据SCN(system change number)来保证读取数据的一致性。Und…

wampserver php扩展openssl 不可用_PHP基础及WAMP集成基础

PHP语言编写的基础框架 PHP语言的编写框架与HTML5的一致&#xff0c;都是一下框架&#xff1a;<!DOCTYPE html> <html><head></head><body> </body> </html>PHP的主要表达语句在body里面&#xff0c;主题内容在<?p ?>标签中…

python expect模块_Python尚学堂高淇|第二季0408P119P123with上常见的异常的解决tryexcept...else结构,...

P119 04&#xff1a;try ...except...else结构try..except...else结构增加了"else快"如果try快当中没有抛出异常&#xff0c;则执行else快&#xff0c;如果try快当中抛出异常&#xff0c;则执行except快&#xff0c;不执行【实例】try....except...else结构执行测试…