正则表达式


一.模块的定义
一组功能的集合(要和某个自己就存在的东西打交道,,而这个东西自己和python没有关系,

python提供了一个功能的集合,专门负责和这个东西打交道)

模块的类型:
  内置模块:不须要咱们本身安装的,解释器自带的
  第三方模块:须要咱们本身安装的模块
  自定义模块:本身写的模块


  import os #这里的os就是一个模块,用来操做文件,文件这个东西就是自己就存在的,
  且文件自己与python没有关系,os模块就是和文件打交道的
  os.remove() #模块中的方法
  os.rename()

二.re模块:为了在python中使用正则表达式
正则表达式是一种独立的规则,独立的语言

引用正则表达式主要为了完成两件事:
  1.把一个文件中的全部手机号码都找出来 从大段的文字中找到符合规则的内容 如:爬虫,日志分析
  2.输入手机号 判断这个字符串是否彻底符合规则 如:表单验证,手机号,QQ号,邮箱,银行卡,身份证号码,密码

三.正则表达式的规则
  正则表达式(只和字符串打交道,从字符串中找到符合规则的内容)
  在线测试工具:http://tool.chinaz.com/regex/
  1. 字符组:[]写在中括号中的内容,如[0-9]中的任意一个出如今某一个字符的位置上都是符合规则的
    字符组
    正则 带匹配字符 匹配结果 解释说明
    [0-9] zrtygh546481fttr 5 4 6 4 8 1 匹配全部的数字
     [a-z]  zrtygh546481fttr  z r t y g h f t t r  匹配全部的小写字母
     [A-Z]  ASFR几乎hiu56  A S F R  匹配全部的大写字母
     [a-zA-Z]   ASFR几乎hiu56  A S F R h i u

     匹配全部的大小写字母python

    (必定要根据ascii码的顺序来选择a-z和A-Z的顺序)git

    [a-zA-Z0-9] ASFR几乎hiu56 A S F R h i u 5 6

    匹配大小写字母和数字正则表达式

    (a-z和A-Z的顺序不能够换0-9是能够在任意位置的)工具

    [a-zA-Z0-9_] ASFR几乎hiu56 A S F R h i u 5 6 _

    匹配数字字母下划线测试

a-z的ascii码是65-90spa

A-Z的ascii码是97-122日志

元字符:ci

元字符 匹配内容 解释
\w 匹配全部的数字字母下划线 w是Word开头至关于[a-zA-Z0-9_]
\d 匹配全部的数字 d是digit的开头,至关于[0-9]
\s 匹配全部的空格,回车,制表符 s是space的开头,至关于[\n\t  ]
\n 匹配换行符(回车)  
\t 匹配制表符(tab)  
  匹配空格  
\W 与\s取反,匹配除数字字母下划线外的全部  
\D 与\d取反,匹配除数字外的其余全部  
\S 与\s取反,取除空格外的全部  

[\s\S][\d\D][\w\W]rem

表示全集,匹配全部字符  

\b字符串

表示单词的边界  
^ 匹配一个字符串的开始  
$ 匹配一个字符串的结束 对^$先后换行也支持,选中此项,每一行的开始和结束都有一个开始和结束字符,不然只有整个文本的开头和结束有
. 表示匹配除换行以外的全部字符  
[] 只要出如今中括号内的内容均可以被匹配 [ab]----单个a和单个b均可以被匹配
[^] 只要不出如今中括号中的内容均可以被匹配 单个出现也不会被匹配
a|b 或,符合a规则的符合b规则的均可以被匹配 若是a规则是b规则的一部分,或a规则比b规则要苛刻,就要把a规则写在前面,默认先看前面
() 分组 表示想给几个字符串量词约束的时候,须要把这些量词分在一个组

量词:

量词 用法说明
{n} 表示这个量词以前的字符出现n次
{n,} 表示这个量词以前的字符至少出现n次
{n,m} 表示这个量词以前的字符出现n-m次
? 表示匹配量词以前的字符出现0次或1次
+ 表示匹配量词以前的字符出现1次或屡次
* 表示匹配量词以前的字符出现0次或屡次

正则表达式的匹配特色:贪婪匹配(它会在容许的范围内取最长的结果)

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

  如:  .*?x