美文网首页
day23 re模块\面向对象编程

day23 re模块\面向对象编程

作者: 荭鲤鱼与緑鲤鱼与驴 | 来源:发表于2020-08-06 22:51 被阅读0次

    Ⅰ re模块
    ①re.findall
    正则表达式:由一系列特殊字符拼接而成的表达式\规则,该表达式用于从一个大字符串中匹配出符合规则的子字符串
    \w 代表匹配字母数字及下划线
    \W 代表匹配非字母数字下划线
    \s 代表匹配任意空白字符或[\n\t\r\f]
    \S 代表匹配任意非空白字符不包含[\n\t\r\f]
    \d 代表匹配任意数字,等价于0-9
    \D 代表匹配任意非数字
    \A 代表匹配字符串开始
    \Z 代表匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串
    \z 代表匹配字符串结束
    \G 代表匹配最后匹配完成的位置
    \n 代表匹配一个换行符
    \t 代表匹配一个制表符
    ^ 代表匹配字符串的开头 \A == ^
    $ 代表匹配字符串的末尾 \Z == &
    . 代表匹配除了换行符以外的任意单个字符.当re.DOTALL标记被指定时,则可以匹配包括换行符\n在内的任意字符
    [...] 代表用来表示一组字符,单独列出:[amk]匹配'a','m'或'k'
    [^...] 不在[]中的字符:[^abc]匹配除了a,b,c之外的字符

    • 匹配0个或多个的表达式
      
    • 匹配1个或多个的表达式
      ? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
      {n} 精确匹配n个前面的表达式
      {n,m}:左边的那个字符出现n次到m次,贪婪方式
      ? 匹配?左边的字符可以没有,也可以有,但只能有一个
      ?! 表示没有匹配到字符串的情况下,再进行后续的正则表达式匹配,后续匹配仍然从被匹配字符串的头开始
      a|b 匹配a或者b
      'a(ab)+123' 匹配引号内的表达式,只显示()内的内容
      'a(?:ab)+123' ?:代表取消分组的意思,显示全部
      [] 代表匹配一个字符,我们可以指定该字符的范围[a-z] - 代表范围的意思,如果匹配- ,需要将-放在开头或者结尾[a-z-]这样可匹配a到z的任意字母及-
      ②re.search
      只要匹配成功一次就返回
      re.search('e','alex make love') 只要找到一个e就会返回一个包含匹配信息的对象,该对象可以通过group()方法得到匹配的字符串,如果没有匹配返回None
      ③re.complile
      该函数根据包含的正则表达式的字符串创建模式对象,可以实现更有效率的匹配,再直接使用字符串表示的正则表达式进行search,match和findall操作时,python会将字符串装换为正则表达式对象.而使用compile完成一次转换之后,再每次使用模式的时候就不用重复转换.当然,使用re.compile()函数进行转换后,re.search的调用方式就转换为pattern,search()的调用方式
      ④re.search
      对整个字符串进行搜素匹配,返回第一个匹配的字符串的match对象
      Ⅱ 面向对象编程
      面向对象的变编程思想
      核心是对象二字,对象是一个用来盛放数据与功能的容器
      基于该思想写程序就是在整合程序
      优点:可拓展性强
      缺点:增加了编程的复杂度

    相关文章

      网友评论

          本文标题:day23 re模块\面向对象编程

          本文链接:https://www.haomeiwen.com/subject/bpubrktx.html