Python正規表示式使用

2021-10-05 12:05:24 字數 2541 閱讀 8764

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...