1. 程式人生 > >py 的 第 16 天

py 的 第 16 天

一個 惰性 至少 遇到 負責 方法 dig 匹配 git

今天課上的主要內容本打算是模塊的,可是看起來好難,今天先講了講正則表達式,但是講了1天也沒特別明白

先寫下模塊吧,什麽是模塊,一組功能的集合

你要和某個東西打交道,而這個東西本身和python沒有關系,這個東西本身就存在

py有一個功能的集合,專門負責和這個東西打交道

模塊的類型

內置模塊 不需要我們自己安裝的,解釋器自帶的

第三方模塊 需要我們自己安裝的模塊  

自定義模塊 我們自己寫的模塊

import os 模塊

os。remove 刪除文件

os。rename 重命名文件

模塊就是給我們提供功能

這個要操作的內容本來就存在

模塊只不過是py提供給我們曲操作這個內容的方法

re模塊

在py中使用正則表達式

今天就教了正則表達式

正則表達式是一個獨立的規則,獨立的語言

正則表達式是什麽?能做什麽?

從大段的文字中找到符合規則的內容

    open打開文件

    讀文件 str

    從一長串的字符串中找到所需要的XXX位數字

        一個字符一個字符的讀

判斷某個字符串是否完全符合規則

    驗證這個手機號是否合法

    給這個手機號發送一個驗證碼

    用戶收到驗證碼 填寫驗證碼

    完成註冊

正則表達式

  從大段的文字中找到符合規則的內容

    爬蟲 從網頁的字符串中獲取你想要的數據

    日誌分析 提取 年-月-日-------xxxx

        日誌格式(包括但不限於)

          2018-1-1 10:00:00 xxxxxx

   判斷某個字符串是夠完全符合規則

      表單驗證: 手機號 qq號碼 郵箱 銀行卡 身份證號 密碼

正則表達式 只和字符串打交道

正則表達式的規則

只有規則,沒有邏輯 字符串 從字符串中找到符合負責的內容

字符組:【】寫在括號中的內容,都出現在下面的某一個字符的位置上都是符合規則的

【0-9】匹配數字

【a-z】匹配小寫字母

【A-Z】匹配大寫字母

【4-6】這樣就匹配一段,字母數字都可以

[a-zA-Z0-9_]匹配大小寫字母數字下劃線

65-90 字符串大寫字母

97-122 字符串小寫字母

轉義符

w w

元字符

\w 匹配數字字母下劃線 Word關鍵字[a-zA-Z0-9_]

\d 匹配所有數字 digit [0-9]

\s 匹配所有的空白符 回車/換行符 制表符(tab) 空格 space 【\n\t】

    匹配換行符 回車 \n

    匹配制表符 tab \t

    匹配空格 後面有跟個空格的就是看不出來

\W\D\S和\w\d\s取反,正好反著來

  [\s\S] [\d\D] [\w\W]是三組全集 意思是匹配所有字符

\b 表示單詞的邊界

和轉移字母相關的 元字符

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

^ $

^ 匹配一個字符串的開始

$ 匹配一個字符串的結束

. 表示匹配 除換行符的之外的所有字符

[] 只要出現在中括號內的內容都可以被匹配

[^]只要不出現在中括號中的內容都可以被匹配

  有一些有特殊意義的字符進入字符組中會回復它本來的意義 : . | [ ] ( )

a|b 或 符合a或b規則的都可以被匹配

  如果a規則是b規則的一部分,且a規則比b規則要苛刻 要長 ,就把a規則寫在前面

  將更復雜的 更長的規則寫在最前面

() 分組 表示給幾個字符加上量詞約束的需求的時候,就給這些量詞分在一個組

量詞

{n} 表示 這個量詞之前的字符出現n次

{n,} 表示這個量詞之前的字符至少出現n次

{n,m}表示這個量詞之前的字符出現n-m次

? 表示匹配量詞之前的字符出現 0次或者1次 表示可有可無 (這個表示感覺不對)但是該怎麽寫現在不知道怎麽說

+ 表示匹配量詞之前的字符出現 1次或者多次

* 表示匹配量詞之前的字符出現 0次或者多次

擴展

匹配整數 \d+

匹配小數\d+\.\d+

匹配小數或者整數

\d+\.\d+|\d+

\d+(\.\d+)?

匹配身份證號碼:【1-9】\d{16}[\dx]|[1-9]\d{14}

        [1-9]\d{14}(\d{2}[\dX])?

正則表達式的匹配特點:貪婪匹配

它會在允許的範圍內取最長的結果

非貪婪模式/惰性匹配:在量詞的後面加上?

. * ? x 匹配任意非換行符字符任意長度 直到遇到x就停止

print(r‘\\n‘)

print(r’\n‘)

關於字符串挪到py中的轉義問題:只需要在工具中測試完畢,確認可以匹配上之後,挪到py中在字符串的外面加上r,r‘’即可

py 的 第 16 天