第15章 正規表示式 2

2021-06-16 07:46:27 字數 2179 閱讀 6059

15.3 正規表示式和python語言

15.3.1 re模組:核心函式和方法

在模式匹配之前,正規表示式必須先被編譯成regex物件。由於正規表示式在執行過程中被多次用於比較,所以強烈建議對它做預編譯,而且,既然正規表示式的編譯是必須的,那使用預編譯來提公升執行效能無疑是明智之舉。re.compile()就是用來提供此功能的。

15.3.2 使用compile()編譯正規表示式

大多數re模組函式都可以作為regex物件的方法。儘管我們建議預編譯,但它並不是必需的。

15.3.3 匹配物件和group()、groups()方法

在處理正規表示式時,除regex物件外,還有另一種物件型別-匹配物件。這些物件是在match()或search()被成功呼叫之後所返回的結果。匹配物件有兩個主要方法:group()和groups()。

group()方法或者返回所有匹配物件或是根據要求返回某個特定子組。groups()則很簡單,它返回乙個包含唯一或所有子組的元組。如果正規表示式中沒有子組的話,groups()將返回乙個空元組,而group()仍會返回所有匹配物件。

15.3.4 用match()匹配字串

match()函式嘗試從字串的開頭開始對模式進行匹配。如果匹配成功,就返回乙個匹配物件,而如果匹配失敗了,就返回none。匹配物件的group()方法可以用來顯示那個成功的匹配。

>>> import re

>>> name = re.match("fan", "fan")

>>> if name is not none:

... print name.group()

...

fan>>>

15.3.5 search()在乙個字串中查詢乙個模式(搜尋與匹配的比較)

search會檢查引數字串任意位置的地方給定正規表示式模式的匹配情況。如果搜尋到成功的匹配,會返回乙個匹配物件,否則返回none。

>>> import re

>>> name = re.search("fan", "anders fan")

>>> if name is not none:

... print name.group()

...

fan>>>

15.3.6 匹配多個字串(|)

>>> import re

>>> name = re.search("xuyang|xufei|bingfeng", "bingfeng fan")

>>> if name is not none:

... print name.group()

...

bingfeng

>>>

15.3.7 匹配任意單個字元(.)

>>> name = re.search(".soft", "beyondsoft")

>>> if name is not none:

... print name.group()

...

dsoft

>>>

>>> name = re.search("3\.14", "3.1415926")

>>> if name is not none:

... print name.group()

...

3.14

>>>

15.3.8 建立字元集合()

>>> name = re.search("[th]soft", "shsoft")

>>> if name is not none:

... print name.group()

...

hsoft

>>>

15.3.9 重複、特殊字元和子組

>>> patt = '\w+@(\w+\.)?\w+\.com'

>>> mail = re.match(patt, '[email protected]')

>>> if mail is not none:

... print mail.group()

...

[email protected]

>>>

第15章 正規表示式 1

15.1 引言 動機 正規表示式 re 為高階文字模式匹配,以及搜尋 替代等功能提供了基礎。正規表示式 re 是一些由字元和特殊符號組成的字串,它們描述了這些字元和字元的某種重複方式,因此能按某種模式匹配乙個有相似特徵的字串的集合,因此能按某模式匹配一系列有相似特徵的字串。python通過標準庫的r...

15 正規表示式

正規表示式,就是從一段字串中提取需要的字串 需要引入的模組 re,常用的函式 re.findall 引數1,引數2,引數3 引數1,表示用什麼規則進行提取 引數2,表示從 提取。返回值是乙個列表 引數3,re.i 表示不區分大小寫,re.s 匹配多行中符合條件的值 1 萬用字元,表示匹配某個字元後面...

第7章 正規表示式介紹

只只匹配行首 只只匹配行尾 只乙個單字元後緊跟 匹配0個或多個此單字元 只匹配 內字元。可以是乙個單字元,也可以是字串行。可以使用 表示 內字串行範圍,如用 1 5 代替 1 2 3 4 5 只用來遮蔽乙個元字元的特殊含義。因為有時在s h e l l中一些元字元有 特殊含義。可以使其失去應有意義 ...