正则表达式

模块:

  什么是模块: 模块就是一组功能的集合

 模块的类型:

  内置模块:不需要自己安装,python自带的模块

  第三方模块:需要我们自己安装的模块

  自定义模块:我们自己写的模块

  例:

  import os    #导入模块

  os.remove()   #删除文件

  os.rename()   #重命名文件

  模块为我们提供功能,这个操作的对象本来就存在,模块就是python提供给我们操作对象的方法.

  正则表达式的作用

    #从大段的文字中找到符合规则的内容

      #爬虫  从网页的字符串中获取你想要的数据

      #日志分析

    #判断某个字符是否完全符合规则

      #表单验证  手机号   qq号码  邮箱  银行卡  身份证号码  密码

  正则表达式只和字符串打交道.

  字符组:[ ]  写在中括号里面的内容,都出现在下面的某一个字符的位置上都是符合规则的.

  [0-9]  匹配数字

  [a-z]  匹配小写字母

  [A-Z]  匹配大写字母

  [a-zA-Z]   匹配大小写字母

  [a-zA-Z0-9]   匹配大小写字母数字

  [a-zA-Z0-9_]  匹配大小写字母数字下划线

  元字符

  \w  匹配数字字母下划线   等价于[a-zA-Z0-9_]

  \d  匹配所有的数字  [0-9]

  \s  匹配所有的空白符   回车/换行符  制表符  空格  space[\n\t ]

     匹配换行符  回车\n

     匹配制表符  tab  \t

     匹配空格       

  \W \D \S 和\w \d \s取反

    [\w\W] [\d\D] [\s\S]   是三组全集,匹配所有的字符

  \b  表示单词的边界

  和转义字符相关的元字符

  \w \d \s(\n\t) \b \W \D \S

  ^ $

  ^  匹配一个字符串的开始

  $  匹配一个字符串的结束

  .   匹配出换行符之外的所有字符

  []  只要出现在中括号内的内容都可以匹配

  [^]  只要不出现在中括号内的内容都可以匹配

    有一些特殊意义的元字符进入字符组中会恢复他本来的意义: . | [ ] ()

  a|b   或    符合a规则或者b规则的都可以被匹配

    如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面

    将更复杂的\更长的规则写在最前面

  ()   分组    表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组里

量词(6个)

  {n}  表示这个量词之前的字符出现n次

  {n,}  表示这个量词之前的字符至少出现n次

  {n,m}   表示这个量词之前的字符出现n--m次

  ?      表示匹配量词之前的字符出现0次或1次

  *    表示匹配量词之前的字符出现0次或多次

  +    表示匹配量词之前的字符出现1次或多次

  正则表达式的匹配特点:  贪婪匹配

    贪婪匹配会在允许的范围内取最长的结果

    非贪婪匹配/惰性匹配:  在量词后面加上?

      .*?x    匹配任意长度的非换行字符,直到遇见x停止

  关于字符串挪到python中的转义问题:只需要在工具中测试完毕,确认可以匹配以后,挪到python中在字符串的外面加上r,r' '即可.


posted @ 2018-08-16 16:30  Virous1887  阅读(119)  评论(0编辑  收藏  举报