python模块re简介

rePython中最常见的正则表达式模块,常用方法包括compile,match,findall,finditer,search,split,sub等。在一些字符串自身操作方法不方便使用的情况下,使用re模块能够非常方便地完成一些查找和替换等操作。

  1. compile 预先编译好正则表达式,可为之后的重复使用节省时间。
>>>import re
>>> url ="http://10.128.39.48:8058/net_command"
>>> reg = re.compile('^http:\/\/(.*?):(\d+?)\/net_command')
>>> 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'
  1. re.match(‘p’, ‘python’) 会在字符串的开头匹配正则表达式:如果开头即不符合,则匹配失败。
    re.search('net_command', url)会扫描整个字符串,直到找到第一个匹配结果返回。 二者的匹配结果也可通过group()方法来获取。
  2. re.findall('net_command', url) 会查找所有匹配结果,并返回结果列表。
    re.finditer()找到匹配结果,将它们作为一个迭代器返回。
  3. re.sub('net_command', 'command_net', url) 用于匹配结果的替换操作,等同于 url.replace('net_command', 'command_net'). sub()方法的第四个参数表示替换次数,默认0为全部替换。
  4. re.split('/', url)等同于 url.split('/')。split()方法的第三个参数表示分割次数,默认0为全部。
  5. start()end() 分别表示匹配结果的开始和结束索引。 而span()则返回开始和结束索引组成的元组。
  6. 正则表达式参数:
    re.VERBOSE(或re.X)可使正则表达式结构化,形式更易读。
    re.DOTALL(或re.S)使得 . 匹配包括换行符在内的任意字符。
    re.IGNORECASE(或re.I)使得匹配对大小写不敏感。
    re.MULTILINE(或re.M)使得多行匹配生效,影响^和$的首尾匹配。
  7. 相比于re模块,我们应该尽可能地使用字符串自身的一些操作方法, 如replace和translate用于子字符串替换(替代re.sub()), index和find用于查找操作(替代re.search()re.match())。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 4,050评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,986评论 19 139
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,629评论 1 118
  • 今天下午,何老师让我们竞选童话剧《小飞侠彼得·潘》里的人物---胡克船长,我梦寐以求的角色就是胡克...
    太阳帆小飞阅读 491评论 1 2
  • 转载自:Apple Pay的使用 Apple Pay的使用 关于Apple Pay 具体继承步骤也可参考: 网址配...
    John_LS阅读 1,034评论 5 0