re---Python的正则表达式模块
来源:互联网 发布:2017seo内容编辑软件 编辑:程序博客网 时间:2024/06/05 00:30
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('/', url), 等同于 url.split('/'), 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()).
9, python正则表达式中的前缀和后缀,如下
re.findall(r"(?<=\()\d+?(?=\))", text)
则(?<=\()表示以(为前缀, (?=\))表示以)未后缀, 可用于匹配括号中的数字.
因为有些情况下使用re.findall(r"\((\d+)\)", text)来获取括号中数字会出错,尤其是受一些奇特的字符影响的时候.
0 0
- Python 正则表达式 RE模块的使用方法
- Python的re模块学习---正则表达式
- 正则表达式和python的re模块
- re---Python的正则表达式模块
- Python 正则表达式 RE模块的使用方法
- Python re模块的正则表达式
- Python正则表达式re模块的使用方法
- PYTHON RE模块 正则表达式的使用
- python正则表达式:re模块
- Python 正则表达式 re模块
- Python 正则表达式,re模块
- Python re模块正则表达式
- Python正则表达式re模块
- Python正则表达式,re模块
- python 正则表达式 re模块
- Python 正则表达式 re模块
- python---re模块,正则表达式
- python正则表达式模块re
- uva 10487
- hdu-1282-回文数猜想( 存int类型操作 )
- Hash Table 开放寻址处理冲突
- OpenWRT定时关闭WIFI
- JAVA - 类和对象
- re---Python的正则表达式模块
- JAVA中开闭原则-----对扩展开放, 对修改关闭。以及接口隔离原则的强大
- 技术的未来,迷茫和选择
- 内核空间和用户空间
- 浏览器下载文件时一共发送2次请求,如何把“下载次数”只记录为1次?
- 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明
- 利用wampsever自定义网站根目录
- Android :task 与 back stack解读之初步了解.(包括 task,back stack,lauchMode, taskAffinity ,intent flags等解析)
- 堆排序