Python正则表达式指南保举
print "m.group(1,2):", m.group(1, 2) ### output ### 2.3. Pattern Pattern工具是一个编译好的正则表达式,通过Pattern提供的一系列要领可以对文本举办匹配查找。 Pattern不能直接实例化,必需行使re.compile()举办结构。 Pattern提供了几个可读属性用于获取表达式的相干信息: pattern: 编译时用的表达式字符串。 flags: 编译时用的匹配模式。数字情势。 groups: 表达式平分组的数目。 groupindex: 以表达式中有别名的组的别名为键、以该组对应的编号为值的字典,没有别名的组不包括在内。 import re print "p.pattern:", p.pattern ### output ### 实例要领[ | re模块要领]: match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]): 这个要领将从string的pos下标处起实行匹配pattern;假如pattern竣事时仍可匹配,则返回一个Match工具;假如匹配进程中pattern无法匹配,可能匹配未竣事就已达到endpos,则返回None。 pos和endpos的默认值别离为0和len(string);re.match()无法指定这两个参数,参数flags用于编译pattern时指定匹配模式。 留意:这个要领并不是完全匹配。当pattern竣事时若string尚有剩余字符,如故视为乐成。想要完全匹配,可以在表达式末端加上界线匹配符'$'。 示例拜见2.1末节。 search(string[, pos[, endpos]]) | re.search(pattern, string[, flags]): 这个要领用于查找字符串中可以匹配乐成的子串。从string的pos下标处起实行匹配pattern,假如pattern竣事时仍可匹配,则返回一个Match工具;若无法匹配,则将pos加1后从头实行匹配;直到pos=endpos时仍无法匹配则返回None。 pos和endpos的默认值别离为0和len(string));re.search()无法指定这两个参数,参数flags用于编译pattern时指定匹配模式。 # encoding: UTF-8 # 将正则表达式编译成Pattern工具 # 行使search()查找匹配的子串,不存在能匹配的子串时将返回None if match: ### 输出 ### split(string[, maxsplit]) | re.split(pattern, string[, maxsplit]): 凭证可以或许匹配的子串将string支解后返回列表。maxsplit用于指定最大支解次数,不指定将所有门割。 import re p = re.compile(r'd+') ### output ### findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags]): 搜刮string,以列表情势返回所有能匹配的子串。 import re p = re.compile(r'd+') ### output ### finditer(string[, pos[, endpos]]) | re.finditer(pattern, string[, flags]): 搜刮string,返回一个次序会见每一个匹配功效(Match工具)的迭代器。 import re p = re.compile(r'd+') ### output ### sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]): 行使repl替代string中每一个匹配的子串后返回替代后的字符串。 当repl是一个字符串时,可以行使id或g、g引用分组,但不能行使编号0。 当repl是一个要领时,这个要领该当只接管一个参数(Match工具),并返回一个字符串用于替代(返回的字符串中不能再引用分组)。 count用于指定最多替代次数,不指按时所有替代。 import re p = re.compile(r'(w+) (w+)') print p.sub(r'2 1', s) def func(m): print p.sub(func, s) ### output ### subn(repl, string[, count]) |re.sub(pattern, repl, string[, count]): 返回 (sub(repl, string[, count]), 替代次数)。 import re p = re.compile(r'(w+) (w+)') print p.subn(r'2 1', s) def func(m): print p.subn(func, s) ### output ### 以上就是Python对付正则表达式的支持。纯熟把握正则表达式是每一个措施员必需具备的手艺,这年初没有不与字符串打交道的措施了。笔者也处于低级阶段,与君共勉,^_^ 其它,图中的非凡结构部门没有举出例子,用到这些的正则表达式是具有必然难度的。有乐趣可以思索一下,怎样匹配不是以abc开头的单词,^_^ (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |