python通過re模組提供對正規表示式的支援 。 使用re的一般步驟是先將正規表示式的字串形式 編譯為pattern例項,然後使用pattern例項處理文字並獲得匹配結果,最後使用match 例項獲得資訊, 進行其他操作。 主要用到的方法列舉如下:
首先說一 下re 中compile 函式,它將乙個正規表示式的字串轉化為pattern匹配物件。
import re
pattern = re.compile(r'\d+')
這個函式是從輸入引數 string(匹配的字串)的開頭開始,嘗試匹配 pattern, 一直向後匹配,如果遇到無法匹配的字元或者巳經到達string的末尾,立即返回none , 反之獲取匹 配的結果。示例如下:
# coding:utf-8
import re
pattern = re.compile(r'\d+')
result = re.match(pattern, '192abc')
if result:
print(result.group())
else:
print('匹配失敗1')
result1 = re.match(pattern, 'abc192')
if result1:
print(result1.group())
else:
print('匹配失敗2')
執行結果:
192匹配失敗2
匹配192abc字串時,match函式是從字串開頭進行匹配, 匹配到192立即返回值 ,通過group()可以獲取捕獲的 值。 同樣, 匹配abcl92字串時,字串開頭不符合正規表示式 ,立即返回none。
search方法與match方法極其類似,區別在於match()函式只從string的開始位置匹配, search()會掃瞄整個string查詢匹配,match()只有 在string起始位置匹配成功的時候才有返回,如果不是開始位置匹配成功的話,match()就返回none。search方法的返回物件和match()返回物件在方法和屬性上是一致的。 示例如下:
# coding:utf-8
import re
pattern = re.compile(r'\d+')
result2 = re.search(pattern, 'abc192ewr')
if result2:
print(result2.group())
else:
print('匹配失敗3')
結果:
照能夠匹配的 子串將string分割後返回列表。maxsplit用於指定最大分割次數,不指定,則將全部分割。 示例如下:
# coding:utf-8
import re
pattern = re.compile(r'\d+')
result3 = re.split(pattern, 'a1b2c3d4e5f')
print(result3)
結果:
['a', 'b', 'c', 'd', 'e', 'f']
搜尋整個string, 以列表形式返回能匹配的全部子串。 示例如下:
# coding:utf-8
import re
pattern = re.compile(r'\d+')
result4 = re.findall(pattern, 'a1b2c3d4e5f')
print(result4)
結果:
['1', '2', '3', '4', '5']
搜尋整個string,以迭代器形式返回能匹配的全部match物件。示例如下:
# coding:utf-8
import re
pattern = re.compile(r'\d+')
matchiter = re.finditer(pattern, 'a1b2c3d4')
for match in matchiter:
print(match.group())
結果:
# coding:utf-8
import re
p = re.compile(r'(?p\w+) (?p\w+)')#使用名稱引用
s = 'i say, hello world!'
print(p.sub(r'\g\g', s))
p = re.compile(r'(\w+) (\w+)')#使用編號
print(p.sub(r'\2 \1', s))
def func(m):
return m.group(1).title() + ' ' + m.group(2).title()
print(p.sub(func, s))
say i, world hello!
say i, world hello!
i say, hello world!
基於《python爬蟲開發與專案實戰》一書
python正規表示式及使用正規表示式的例子
正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...
Python正規表示式使用
python正規表示式使用 正規表示式不是python內建的功能,所以需要引入import re模組才可以使用。正規表示式的功能很多,但是我們通常使用的功能也就是那幾個,這裡對工作中經常使用到的正規表示式進行乙個系統的總結。1.字元 匹配除了換行符 n 外的字元 轉義字元,使後乙個字元改變以前的意思...
python 正規表示式使用
場景 替換很多動態資料的時候,會重複很多的條件判斷if,replace。作用 完成多步,同時去匹配符合特定規則的字串,完成通用的正則匹配 正規表示式是一種通用的字串匹配技術,是不會因為程式語言不同發生變化。想要查詢某種特徵的,具有一定規則的字串,都是可以嘗試使用正規表示式 jsonpath,xpat...