正規表示式 python3 x re模組

2021-08-07 18:13:11 字數 3266 閱讀 7088

*************************=== re.compile *************************===

re.compile可以把正規表示式編譯成乙個正規表示式物件。可以把那些經常使用的正規表示式編譯成正規表示式物件,這樣可以提高一定的效率

import re

匹配郵箱

key = '[email protected]'    # 要匹配的文字

p1 = r'^(<\w[\s\w]+>\s)?(\w+[\w+.]*@\w+.(org|com)$)'    # 正則表達規則

regex = re.compile(p1)    # 編譯正規表示式

matcher1 = re.match(regex, key, flags=0)    # 在文字中搜尋符合正規表示式的部分

print(matcher1.group())    # 列印出來

*************************=== re.match *************************===

re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none

re.match(pattern, string, flags=0)

pattern     匹配的正規表示式

string     要匹配的字串。

flags     標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等

匹配成功re.match方法返回乙個匹配的物件,否則返回none

我們可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式

group(num=0)     匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組

groups()     返回乙個包含所有小組字串的元組,從 1 到 所含的小組號

import re

print(re.match('www', 'www.runoob.com').span())

print(re.match('com','www.runoob.com'))

line = "cats are smarter than dogs"

matchobj = re.match(r'(.*) are (.*?) .*', line, re.m | re.i)

if matchobj:

print(matchobj.group())

print(matchobj.group(1))

print(matchobj.group(2))

else:

print("no match!")

*************************=== re.search *************************===

re.search 掃瞄整個字串並返回第乙個成功的匹配

re.search(pattern, string, flags=0)

pattern     匹配的正規表示式

string     要匹配的字串。

flags     標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等

匹配成功re.search方法返回乙個匹配的物件,否則返回none

我們可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式

group(num=0)     匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組

import re

print(re.search('www', 'www.runoob.com').span())

print(re.search('com', 'www.runoob.com').span())

line = "cats are smarter than dogs"

searchobj = re.search( r'(.*) are (.*?) .*', line, re.m|re.i)

if searchobj:

print(searchobj.group())

print(searchobj.group(1))

print(searchobj.group(2))

else:

print("nothing found!!")

注:re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配

*************************=== re.sub *************************===

re.sub用於替換字串中的匹配項

re.sub的函式原型為:re.sub(pattern, repl, string, count),第二個函式是替換後的字串,第四個引數指替換個數。預設為0,表示每個匹配項都替換

re.sub還允許使用函式對匹配項的替換進行複雜的處理

import re

text = "jgood is a handsome boy, he is cool, clever, and so on..."

print(re.sub(r'\s+', '-', text))    # 將字串中的空格 ' ' 替換成 '-'

print(re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0))    # 將字串中的空格' '替換為'[ ]'

*************************=== re.split *************************===

re.split分割字串

import re

text = "jgood is a handsome boy, he is cool, clever, and so on..."

print(re.split(r'\s+', text))    # 將字串按空格分割成乙個單詞列表

*************************=== re.findall *************************===

re.findall可以獲取字串中所有匹配的字串

import re

text = "jgood is a handsome boy, he is cool, clever, and so on..."

print(re.findall(r'\w*oo\w*', text))    # 獲取字串中,包含'oo'的所有單詞

Python 正規表示式 3

coding utf 8 匯入re模組 import re 今天討論邊界問題 黨我們想得到乙個郵箱的時候我們可以用正則很快的判斷,但是如果是乙個錯誤的位址我們怎麼判斷呢,1name 2345 163.com result re.match d s d s w name print result.gr...

正規表示式3

1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫做長度 的符號 包括...

正規表示式3

正規表示式用於字串處理 表單驗證等場合,實用高效。本文收集了一些常用的表示式 str preg replace a 1 2 3 str 其中用了三個子模式 每個圓括號中內容為乙個子模式 第乙個是鏈結開始標籤,第二個是鏈結文字,第三個是 然後第二個引數中 1 2 3就表示這三個部分,要替換成什麼樣子還...