Regex基礎---轉自 PythonRegex指南 前邊

來源:互聯網
上載者:User

標籤:例子   live   引擎   其他   Regex   成功   介紹   轉換   技術分享   

1. Regex基礎1.1. 簡單介紹

Regex並不是Python的一部分。Regex是用於處理字串的強大工具,擁有自己獨特的文法以及一個獨立的處理引擎,效率上可能不如str內建的方法,但功能十分強大。得益於這一點,在提供了Regex的語言裡,Regex的文法都是一樣的,區別只在於不同的程式設計語言實現支援的文法數量不同;但不用擔心,不被支援的文法通常是不常用的部分。如果已經在其他語言裡使用過Regex,只需要簡單看一看就可以上手了。

展示了使用Regex進行匹配的流程: 

Regex的大致匹配過程是:依次拿出運算式和文本中的字元比較,如果每一個字元都能匹配,則匹配成功;一旦有匹配不成功的字元則匹配失敗。如果運算式中有量詞或邊界,這個過程會稍微有一些不同,但也是很好理解的,看中的樣本以及自己多使用幾次就能明白。

列出了Python支援的Regex元字元和文法:   

1.2. 數量詞的貪婪模式與非貪婪模式

Regex通常用於在文本中尋找匹配的字串。Python裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪婪),總是嘗試匹配儘可能多的字元;非貪婪的則相反,總是嘗試匹配儘可能少的字元。例如:Regex"ab*"如果用於尋找"abbbc",將找到"abbb"。而如果使用非貪婪的數量詞"ab*?",將找到"a"。

1.3. 反斜線的困擾

與大多數程式設計語言相同,Regex裡使用"\"作為逸出字元,這就可能造成反斜線困擾。假如你需要匹配文本中的字元"\",那麼使用程式設計語言表示的Regex裡將需要4個反斜線"\\\\":前兩個和後兩個分別用於在程式設計語言裡轉義成反斜線,轉換成兩個反斜線後再在Regex裡轉義成一個反斜線。Python裡的原生字串很好地解決了這個問題,這個例子中的Regex可以使用r"\\"表示。同樣,匹配一個數位"\\d"可以寫成r"\d"。有了原生字串,你再也不用擔心是不是漏寫了反斜線,寫出來的運算式也更直觀。

1.4. 匹配模式

Regex提供了一些可用的匹配模式,比如忽略大小寫、多行匹配等,這部分內容將在Pattern類的Factory 方法re.compile(pattern[, flags])中一起介紹。

Regex基礎---轉自 PythonRegex指南 前邊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.