分享

python3正则表达式简单使用、search()、match()等函数的区别

 沙门空海 2018-09-20

原生字符串

  • raw string:转义字符’\’不解释为转义字符

re包的几个主要的函数

  • re.search(pattern, string, flags=0) 
    • 返回匹配的match对象
    • flags:正则表达式使用时的标记
    • re.I->IGNORECASE 忽略正则的大小写、[a-Z]可匹配所有字母
    • re.M->MUTILINE 表达式中的^能够将给定字符串的每行作为匹配开始
    • re.S->DOTALL .可以匹配除换行符以外的字符、若使用re.S则可以匹配换行符
  • re.match() 
    • 返回匹配的match对象
    • 默认从给定字符串的开头开始匹配、即使正则表达式没有用^声明匹配开头
  • re.findall() 
    • 以列表(可迭代变量)形式返回所有匹配到的子串
  • re.split(pattern, string, maxsplit, flags=0) 
    • 将匹配到的子串删掉、以列表的形式返回剩下的子串
  • re.finditer() 
    • 以可迭代变量形式返回匹配的match对象
  • re.sub(pattern, repl, string, count=0, flags=0) 
    • 用repl替换所有匹配到的子串、并返回替换后的字符串、count表示最大替换次数
    • 宁波最好的整形医院http://www./
      宁波好的整形医院http://www./

Match对象

  • Match对象的几个属性: 
    • .string 待匹配的文本
    • .re 匹配使用的pattern对象
    • .pos 正则表达式搜索文本的开始位置
    • .endpos 正则表达式搜索文本的结束位置
  • Match对象的几个方法: 
    • group(0) 返回匹配到的子串
    • start() 返回匹配子串的开始位置
    • end() 返回匹配子串的结束位置
    • span() 返回start()、end()

贪婪匹配与最小匹配

  • 贪婪匹配 
    • re库默认返回匹配到的最长子串
  • 最小匹配 
    • 只需要对正则的几个操作符做一些扩展就可以使用最小匹配
    • *? 前一个0次或无限次匹配、并且最小匹配
    • +? 前一个1次或无限次、并且最小匹配
    • ?? 前一个字符0次或1次匹配、并且最小匹配
    • {m,n}? 扩展前一个字符m至n次、最小匹配

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多