当前位置:首页 > 公司荣誉 >

re---Python的正则表达式模块

编辑:北京飞炫空间展览展示有限公司 时间:2017-09-12 16:16:14阅读次数:2
re---Python的正则表达式模块

re是Python中最常见的正则表达式模块,常用方法包括compile,match,findall,finditer,search,split,sub等.

在一些字符串自身操作方法不方便使用的情况下,使用re模块能够非常方便地完成一些查找和替换等操作.

1, compile

预先编译好正则表达式,可为之后的重复使用节省时间.

>>> import re >>> url = "http://10.128.39.48:8058/net_command" # 编译一个正则表达式对象reg, # reg有多个方法可以调用,如re.match(), re.findall(), re.sub()等 >>> reg = re.compile('^http:\/\/(.*?):(\d+?)\/net_command') # 针对url,执行正则匹配,然后通过group()来取得匹配结果 >>> result = reg.match(url) >>> result.group() 'http://10.128.39.48:8058/net_command' >>> result.group(0) 'http://10.128.39.48:8058/net_command' >>> result.group(1) '10.128.39.48' >>> result.group(2) '8058'

2, re.match(‘p’, ‘python’) 会在字符串的开头匹配正则表达式: 如果开头即不符合,则匹配失败.

而re.search('net_command', url)会扫描整个字符串,直到找到第一个匹配结果返回. 二者的匹配结果也可通过group()方法来获取. 3, re.findall('net_command', url) 会查找所有匹配结果,并返回结果列表. 而re.finditer()找到匹配结果,将它们作为一个迭代器返回. 4, re.sub('net_command', 'command_net', url) 用于匹配结果的替换操作, 等同于 url.replace('net_command', 'command_net'). sub()方法的第四个参数表示替换次数,默认0为全部替换. 5, re.split('http://www.2cto.com/', url), 等同于 url.split('http://www.2cto.com/'), split()方法的第三个参数表示分割次数,默认0为全部. 6, start(), end(), 分别表示匹配结果的开始和结束索引. 而span()则返回开始和结束索引组成的元组. 7, 正则表达式参数, re.VERBOSE(或re.X)可使正则表达式结构化,形式更易读. re.DOTALL(或re.S)使得 . 匹配包括换行符在内的任意字符. re.IGNORECASE(或re.I)使得匹配对大小写不敏感. re.MULTILINE(或re.M)使得多行匹配生效,影响^和$的首尾匹配. 8, 相比于re模块,我们应该尽可能地使用字符串自身的一些操作方法, 如replace和translate用于子字符串替换(替代re.sub()), index和find用于查找操作(替代re.search()和re.match()).
,站群软件

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:荆门SEO http://jingmen.4567w.com

上一篇:POJ 1979 Red and Black(红与黑) 下一篇:最后一页

相关阅读