python -模組之路 Regex

來源:互聯網
上載者:User

標籤:rem   怎麼   努力   img   pat   remove   沒有   不能   ack   

闡述簡單模組

 什麼是模組 一組功能的集合
你要和某個東西打交道,而這個東西本身和python沒有關係,這個東西本身就存在
python提供了一個功能的集合 專門負責和這個東西打交道

模組的類型
內建模組 不需要我們自己安裝的 解譯器內建的
第三方模組 需要我們自己安裝的模組
自訂模組 我們自己寫的模組

是誰把所有的硬體管理起來的? 作業系統
檔案 在 硬碟上儲存著
從硬碟上讀檔案

import os # 模組
os.remove() # 刪除檔案
os.rename() # 重新命名檔案

模組實際上就是給我們提供功能
這個要操作的內容本來就存在
模組只不過是python提供給我們去操作這個內容的方法

為什麼要有模組
模組怎麼用

Regex本身也和python沒有什麼關係,就是匹配字串的一種規則。
官方定義:Regex是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,
組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。

Regex:

一說規則我已經知道你很暈了,現在讓我們先來看一些實際的應用。線上測試載入器http://tool.chinaz.com/regex/
首先你要知道的是,談到正則,就只和字串相關了。在我給你提供的工具中,你輸入的每一個字都是一個字串。
其次,如果在一個位置的一個值,不會出現什麼變化,那麼是不需要規則的。
  比如你要用"1"去匹配"1",或者用"2"去匹配"2",直接就可以匹配上。這連python的字串操作都可以輕鬆做到。
那麼在之後我們更多要考慮的是在同一個位置上可以出現的字元的範圍
字元組 : [字元組]在同一個位置可能出現的各種字元組成了一個字元組,在Regex中用[]表示字元分為很多類,比如數字、字母、標點等等。假如你現在要求一個位置"只能出現一個數字",那麼這個位置上的字元只能是0、1、2...9這10個數之一。

字元:

量詞:

. ^ $ :                                           

* + ? {} :                                      

注意: 前面的* ,+ ,?等都是貪婪匹配, 也就儘可能匹配,後面加?號使其變成惰性匹配

 

字元集  [ ]   [ ^ ]                                  

 

分組 () 與 或   |  [ ^ ]                                     

社會安全號碼碼是一個長度為15或18個字元的字串, 如果是15位則全部有數字組成,首位不能為0;  

如果是18位 , 則前17位全部是數字,末位可能是數字或x,  下面我們嘗試用正則來表示:

轉義符  \                                                        

在Regex中,有很多特殊意義的是元字元,比如 \d 和 \s等,  如果要在正則中匹配正常的 "\d" 而不是數字就需要對 " \ " 進行轉義, 變成 " \\ "。

在python中 , 無論是Regex, 還是待匹配的內容,都是以字串的形式出現的, 在字串中 \ 也有特殊意義,本身還需要轉義。 所以如果匹配一次 " \d " ,字串中要寫成 " \\d " ,那麼正則裡就要寫成

"\\\\d",這樣就太麻煩了。這個時候我們就用到了‘ r\d ‘這個概念,此時的正則是‘r\\d‘就可以了。

貪婪匹配                                                        

貪婪匹配 : 在滿足匹配時, 匹配儘可能長的字串,預設情況下,採用貪婪匹配

幾個常用的非貪婪匹配pattern

*? 重複任意次,但儘可能少重複+? 重複1次或更多次,但儘可能少重複?? 重複0次或1次,但儘可能少重複{n,m}? 重複n到m次,但儘可能少重複{n,}? 重複n次以上,但儘可能少重複

 . * ? 的用法

. 是任一字元* 是取 0 至 無限長度? 是非貪婪模式。何在一起就是 取盡量少的任一字元,一般不會這麼單獨寫,他大多用在:.*?x就是取前面任意長度的字元,直到一個x出現

 

好了  今天先寫到這哈   明天繼續哈  努力到無能為力  拼搏到感動自己






python -模組之路 Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.