正則表達式


一.模塊的定義
一組功能的集合(要和某個自己就存在的東西打交道,,而這個東西自己和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