网站建设中最基本的决策之一是,学网站建设需要多久,网站建设裕鸿国际,网站域名一年大概多少Python3 正则表达式 -2
检索和替换
Python 的re模块提供了re.sub用于替换字符串中的匹配项。
语法#xff1a;
re.sub(pattern, repl,string, count0, flags0)参数#xff1a;
pattern : 正则中的模式字符串。repl : 替换的字符串#xff0c;也可为一个函数。string : …Python3 正则表达式 -2
检索和替换
Python 的re模块提供了re.sub用于替换字符串中的匹配项。
语法
re.sub(pattern, repl,string, count0, flags0)参数
pattern : 正则中的模式字符串。repl : 替换的字符串也可为一个函数。string : 要被查找替换的原始字符串。count : 模式匹配后替换的最大次数默认 0 表示替换所有的匹配。flags : 编译时用的匹配模式数字形式。
前三个为必选参数后两个为可选参数。
#!/usr/bin/python3
import rephone 2004-959-559 # 这是一个电话号码# 删除注释
num re.sub(r#.*$, , phone)
print (电话号码 : , num)# 移除非数字的内容
num re.sub(r\D, , phone)
print (电话号码 : , num)以上实例执行结果如下
电话号码:2004-959-559
电话号码:2004959559repl 参数是一个函数
以下实例中将字符串中的匹配的数字乘以 2
#!/usr/bin/pythonimport re# 将匹配的数字乘以 2
def double(matched):value int(matched.group(value))return str(value * 2)s A23G4HFD567
print(re.sub((?Pvalue\d), double, s))执行输出结果为
A46G8HFD1134compile 函数
compile 函数用于编译正则表达式生成一个正则表达式 Pattern 对象供 match() 和 search() 这两个函数使用。
语法格式为
re.compile(pattern[, flags])参数
pattern : 一个字符串形式的正则表达式flags 可选表示匹配模式比如忽略大小写多行模式等具体参数为re.I 忽略大小写* re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境 re.M 多行模式re.S 即为’ . ‘并且包括换行符在内的任意字符’ . 不包括换行符re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库re.X 为了增加可读性忽略空格和’ # 后面的注释
实例
import repattern re.compile(r\d) # 用于匹配至少一个数字m pattern.match(one12twothree34four) # 查找头部没有匹配print( m )
Nonem pattern.match(one12twothree34four, 2, 10) # 从e的位置开始匹配没有匹配print( m )
Nonem pattern.match(one12twothree34four, 3, 10) # 从1的位置开始匹配正好匹配print( m ) # 返回一个 Match 对象
_sre.SRE_Match object at 0x10a42aac0m.group(0) # 可省略 0
12m.start(0) # 可省略 0
3m.end(0) # 可省略 0
5m.span(0) # 可省略 0
(3, 5)在上面当匹配成功时返回一个 Match 对象其中
group([group1, …]) 方法用于获得一个或多个分组匹配的字符串当要获得整个匹配的子串时可直接使用 group() 或 group(0)start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置子串第一个字符的索引参数默认值为 0end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置子串最后一个字符的索引1参数默认值为 0span([group]) 方法返回 (start(group), end(group))。
再看看一个例子
import repattern re.compile(r([a-z]) ([a-z]), re.I) # re.I 表示忽略大小写m pattern.match(Hello World Wide Web)print( m ) # 匹配成功返回一个 Match 对象
_sre.SRE_Match object at 0x10bea83e8m.group(0) # 返回匹配成功的整个子串
Hello Worldm.span(0) # 返回匹配成功的整个子串的索引
(0, 11)m.group(1) # 返回第一个分组匹配成功的子串
Hellom.span(1) # 返回第一个分组匹配成功的子串的索引
(0, 5)m.group(2) # 返回第二个分组匹配成功的子串
Worldm.span(2) # 返回第二个分组匹配成功的子串索引
(6, 11)m.groups() # 等价于 (m.group(1), m.group(2), ...)
(Hello, World)m.group(3) # 不存在第三个分组
Traceback (most recent call last):File stdin, line 1, in module
IndexError: no such groupfindall
在字符串中找到正则表达式所匹配的所有子串并返回一个列表如果有多个匹配模式则返回元组列表如果没有找到匹配的则返回空列表。
注意 match 和 search 是匹配一次 findall 匹配所有。
语法格式为
re.findall(pattern,string, flags0)
或
pattern.findall(string[, pos[, endpos]])参数
pattern 匹配模式。string 待匹配的字符串。pos 可选参数指定字符串的起始位置默认为 0。endpos 可选参数指定字符串的结束位置默认为字符串的长度。
查找字符串中的所有数字
import reresult1 re.findall(r\d,runoob 123 google 456)pattern re.compile(r\d) # 查找数字
result2 pattern.findall(runoob 123 google 456)
result3 pattern.findall(run88oob123google456, 0, 10)print(result1)
print(result2)
print(result3)输出结果
[123,456]
[123,456]
[88,12]多个匹配模式返回元组列表
import reresult re.findall(r(\w)(\d), set width20 and height10)
print(result)[(width,20),(height,10)]re.finditer
和 findall 类似在字符串中找到正则表达式所匹配的所有子串并把它们作为一个迭代器返回。
re.finditer(pattern,string, flags0)参数
参数描述pattern匹配的正则表达式string要匹配的字符串。flags标志位用于控制正则表达式的匹配方式如是否区分大小写多行匹配等等。参见正则表达式修饰符 - 可选标志
import reit re.finditer(r\d,12a32bc43jf3)
for match in it: print (match.group() )输出结果
12
32
43
3re.split
split 方法按照能够匹配的子串将字符串分割后返回列表它的使用形式如下
re.split(pattern,string[, maxsplit0, flags0])参数
参数描述pattern匹配的正则表达式string要匹配的字符串。maxsplit分割次数maxsplit1 分割一次默认为 0不限制次数。flags标志位用于控制正则表达式的匹配方式如是否区分大小写多行匹配等等。参见正则表达式修饰符 - 可选标志
import rere.split(\W, runoob, runoob, runoob.)
[runoob, runoob, runoob, ]re.split((\W), runoob, runoob, runoob.)
[, , runoob, , , runoob, , , runoob, ., ]re.split(\W, runoob, runoob, runoob., 1)
[, runoob, runoob, runoob.] re.split(a*, hello world) # 对于一个找不到匹配的字符串而言split 不会对其作出分割
[hello world] 文章转载自: http://www.morning.mkxxk.cn.gov.cn.mkxxk.cn http://www.morning.hxpsp.cn.gov.cn.hxpsp.cn http://www.morning.krwzy.cn.gov.cn.krwzy.cn http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn http://www.morning.snyqb.cn.gov.cn.snyqb.cn http://www.morning.dmhs.cn.gov.cn.dmhs.cn http://www.morning.wfhnz.cn.gov.cn.wfhnz.cn http://www.morning.fwjfh.cn.gov.cn.fwjfh.cn http://www.morning.rjrz.cn.gov.cn.rjrz.cn http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.hwcln.cn.gov.cn.hwcln.cn http://www.morning.dzfwb.cn.gov.cn.dzfwb.cn http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com http://www.morning.wqpr.cn.gov.cn.wqpr.cn http://www.morning.fjntg.cn.gov.cn.fjntg.cn http://www.morning.tsnmt.cn.gov.cn.tsnmt.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.btlmb.cn.gov.cn.btlmb.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn http://www.morning.ghgck.cn.gov.cn.ghgck.cn http://www.morning.rqzyz.cn.gov.cn.rqzyz.cn http://www.morning.wjfzp.cn.gov.cn.wjfzp.cn http://www.morning.ztfzm.cn.gov.cn.ztfzm.cn http://www.morning.smpmn.cn.gov.cn.smpmn.cn http://www.morning.mcmpq.cn.gov.cn.mcmpq.cn http://www.morning.tpyjr.cn.gov.cn.tpyjr.cn http://www.morning.nyqxy.cn.gov.cn.nyqxy.cn http://www.morning.jjpk.cn.gov.cn.jjpk.cn http://www.morning.fkyqt.cn.gov.cn.fkyqt.cn http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn http://www.morning.xdjsx.cn.gov.cn.xdjsx.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn http://www.morning.kqxng.cn.gov.cn.kqxng.cn http://www.morning.tpfny.cn.gov.cn.tpfny.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn http://www.morning.rfpq.cn.gov.cn.rfpq.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.gcfrt.cn.gov.cn.gcfrt.cn http://www.morning.xqxrm.cn.gov.cn.xqxrm.cn http://www.morning.rgmd.cn.gov.cn.rgmd.cn http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn http://www.morning.rglp.cn.gov.cn.rglp.cn http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn http://www.morning.xcnwf.cn.gov.cn.xcnwf.cn http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn http://www.morning.jyknk.cn.gov.cn.jyknk.cn http://www.morning.tbjb.cn.gov.cn.tbjb.cn http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn http://www.morning.mrckk.cn.gov.cn.mrckk.cn http://www.morning.gyrdn.cn.gov.cn.gyrdn.cn http://www.morning.mmzfl.cn.gov.cn.mmzfl.cn http://www.morning.ntgsg.cn.gov.cn.ntgsg.cn http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn http://www.morning.nsncq.cn.gov.cn.nsncq.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.zsyqg.cn.gov.cn.zsyqg.cn http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn http://www.morning.nchlk.cn.gov.cn.nchlk.cn http://www.morning.pgxjl.cn.gov.cn.pgxjl.cn http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn http://www.morning.gxqpm.cn.gov.cn.gxqpm.cn http://www.morning.fjlsfs.com.gov.cn.fjlsfs.com http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn http://www.morning.ntffl.cn.gov.cn.ntffl.cn http://www.morning.rwcw.cn.gov.cn.rwcw.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.easiuse.com.gov.cn.easiuse.com http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.qhln.cn.gov.cn.qhln.cn