- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章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
1
|
re.sub(pattern, repl, string[, count])
|
使用repl替换string中每一个匹配的子串后返回替换后的字符串.
当repl是一个字符串时,可以使用\id或\g、\g引用分组,但不能使用编号0.
当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组).
count用于指定最多替换次数,不指定时全部替换.
1
|
re.subn(pattern, repl, string[, count])
|
返回 (sub(repl, string[, count]), 替换次数).
Case
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#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
'<em>\1<em>'
,
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 。
1
2
3
4
5
6
|
\. : https:
/
/
i
-
cnb1logs
-
co2m
/
Edi3tPosts
-
asp4x?opt
=
999
\
/
([^
*
]
+
)\
/
: https:<em>
/
i.cnb1logs.co2m<em>Edi3tPosts.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
*
*
*
|
总结 。
原文链接:https://www.cnblogs.com/sub2020/p/7942113.html 。
最后此篇关于python 正则表达式 re.sub & re.subn的文章就讲到这里了,如果你想了解更多关于python 正则表达式 re.sub & re.subn的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
假设我有以下字符串: abc 而且我想替换所有出现的 r''有一个对应于比赛号码的号码。所以给定上面的字符串,返回值将是: a1b2c3 我知道有很多方法可以在代码中实现这一点(例如,通过编写一个带有
python正则表达式模块简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emacs 风格的
我是一名优秀的程序员,十分优秀!