re模块各个方法的用法 正则表达式 (二)

书籍: 正则指引.

re模块:

  #基础查找方法
  findall(正则, 待匹配字符串) 返回匹配后的所有值 以列表的形式. #比较low
    分组优先的问题: 在findall里面会优先显示括号里面的内容. 如果一定要在Python里面显示全部匹配的内容, 必须在前括号后面加上 问号加冒号 (?:) 表示取消分组优先级
  search(正则, 待匹配的字符串) 匹配到了返回一个正则对象.通过 group() 可以获取值, 但是如果没有值,则返回None
    与分组的问题: search没有优先级的问题, 但是会把分组标号. 用group(标号) 可以获得每个分组内的内容.
  match(正则, 待匹配的字符串) 默认在 正则的参数位置上 加^ 表示开头.

 

  # 字符串的操作
  split(正则, 待匹配的字符串.) 按照正则表达式的规则去进行切割. 如果想要保留用来分割的工具的内容, 可以在正则外面加上分组.
  sub( 正则, 新内容, 待匹配的字符串, 次数) 替换. 把正则的规则替换成新内容
  subn(正则, 新内容, 待匹配的字符串, 次数) 返回替换了几次.

 

 

  #优化代码
  complie(正则) 讲正则规律编译成一个对象   此对象,可以调用除了本方法之外的任何re模块里面的方法相对来说很方便.  # 节省时间
  finditer( 正则, 待匹配的字符串) 迭代功能. 把匹配到的东西 生成一个迭代器. 用group() 可以一个一个取出来.     #节省空间


  分组命名: (为了前后两个标签保持一致.)
    html标签语言. 对于浏览器来说 浏览器和HTML之间有一种约定, 写在一个标识符之内的代码, 可以有一种独立的格式,
    (?P<name>正则) 在findall 里面 优先显示 名字叫name 的符合正则规则的内容.
  分组索引: 可以根据分组的索引用group(n) 取值.


以上各种方法都有一个flags参数:
  re.S : 表示 . 点可以支持换行符. ***
  re.M :支持多行模式.

1 lags有很多可选值:
2 
3 re.I(IGNORECASE)忽略大小写,括号内是完整的写法
4 re.M(MULTILINE)多行模式,改变^和$的行为
5 re.S(DOTALL)点可以匹配任意字符,包括换行符
6 re.L(LOCALE)做本地化识别的匹配,表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境,不推荐使用
7 re.U(UNICODE) 使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag
8 re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释

 



正则总结:
  1, 元字符
  2, 量词
  3, 小规则
  4, 分组命名
  5, 贪婪 惰性匹配
  6, 每一小段的元素的排放顺序.
re模块总结:
  1, findall split 分组优先
  2, flags参数
  3, 如果在匹配的时候,遇到了没有特点的内容,只能通过匹配不想要的内容,来从中利用分组命名来摘取想要的内容
  4, 基础查获匹配
  5, 基础的字符串操作
  6, 代码优化方法.

模块和包:
  模块: ****
    1, 什么是模块?
      py文件
      C语言编译之后的文件.
      写好了的代码集合, 可以直接调用他的功能, 这样的东西 就是模块.
    2, 为什么要有模块:
      1, 内存空间是有限的, 必须存放在硬盘里, 当需要的时候,再加载到内存里.
      2, 模块就是把丰富的功能,封装在一个文件里, 等到用的时候直接导入内存就可以使用.
      3, 有那些种类的模块:
        1, 内置模块.
        2, 第三模块.
          安装 pip install 模块名.
        3, 自定义模块
          分模块: 功能独立, 防止代码过长.
          包: flask ***

 

详情内容请看http://www.cnblogs.com/Eva-J/articles/7228075.html#_label10

posted @ 2018-07-13 15:42  浮生凉年  阅读(470)  评论(0编辑  收藏  举报