re模組是python獨有的匹配字串的模組,該模組中提供的很多功能是基於正規表示式實現的,而正規表示式是對字串進行模糊匹配,提取自己需要的字串部分,他對所有的語言都通用。
正規表示式元字元
元字元
匹配內容
.匹配除換行符以外的任意字元
\w匹配字母或數字或下劃線
\s匹配任意的空白字元
\d匹配數字
\n匹配乙個換行字元
\t匹配乙個製表字元
\b匹配乙個單詞的結尾
^匹配字串的開始
$匹配字串的結尾
\w匹配非字母或數字或下劃線
\d匹配非數字
\s匹配非空白字元
a|b
匹配字元a或字元b
()匹配括號內的表示式,也表示乙個組
[...]
匹配字元組中的字元
[^...]
匹配除了字元組中字元的所有字元
這則表示式中的量詞
量詞用法說明
*重複零次或更多次
+重複一次或更多次
?重複零次或一次
重複n次
重複n次貨更多次
重複n到m次
importrestr = '
testtest123'#
方法一:
#group:方法得到匹配的字串,如果字串沒有匹配,則返回none
print(re.match('
\w+', str).group())
importrestr = '
testtest123'#
方法二:
pattern = re.compile('
\w+'
)value =pattern.match(str).group()
print(value)
re.compile(pattern,flags=0):用於編譯正規表示式,生成乙個正則表達物件。
importrestr = '
testtest123'#
用於編譯正規表示式,生成乙個正規表示式物件
regexp = re.compile('
t(.+)t')
#呼叫regexp物件使用findall取出str t...t之間的值
value =regexp.findall(str)
print(value)
['esttes
']
re.search(pattern,string,flags = 0):掃瞄字串以查詢正規表示式模式產生匹配項的第乙個位置 ,然後返回相應的match物件。
importrestr = '
testtest123'#
用於編譯正規表示式,生成乙個正規表示式物件
#方法一
regexp = re.compile('t'
)value =regexp.search(str)
(value)
#方法二
value2 = re.search('t'
, str).group()
print(value2)
't'>t
re.match(pattern, string, flags=0):如果字串開頭的零個或多個字元與正規表示式模式匹配,則返回相應的匹配物件。
importrestr = '
testtest123
'print(re.match('t'
, str).group())
print(re.match('
\w+'
, str).group())
print(re.match('
\d+', str).group())
ttesttest123
testtest
re.fullmatch(pattern,string,flags=0):如果整個字串與正規表示式模式匹配,則返回相應的match物件。
importrestr = '
testtest123
'print(re.fullmatch('
\w+', str).group())
testtest123
re.split(pattern,string,maxsplit=0,flags=0):通過出現模式來拆分字串。如果在pattern中使用了捕獲括號,那麼模式中所有組的文字也將作為結果列表的一部分返回。如果maxsplit不為零,則最多會發生maxspalit分割,並將字串的其餘部分作為列表的最後乙個元素返回。
importrestr = '
testtest123
'print(re.split('t'
, str))
print(re.split('
2', str))
['', 'es', '', '
es', '
123'][
'testtest1
', '
3']
re.findall(pattern,string,flags=0):以string列表形式返回string中pattern的所有非重疊匹配項。從左到右掃瞄該字串,並以找到的順序返回匹配項。如果該模式中存在乙個或多個組,則返回乙個組列表;否則,返回乙個列表。如果模式包含多個組,則這將是乙個元祖列表。空匹配項包含在結果中。
importrestr = '
testtest123
'print(re.findall('t'
, str))
print(re.findall('
2', str))
['t', '
t', '
t', 't'
]['2
']
re.finditer(pattern,string,flags=0):返回乙個迭代器,該迭代器在string型別的re 模式的所有非重疊匹配中產生匹配物件。
importrestr = '
testtest123
'print(re.finditer('
t', str))
re.sub(pattern,repl,string,count=0,flags=0):返回通過用替換repl替換字串中最左邊的不重疊模式所獲得的字串。如果找不到該模式,則返回的字串不變。repl可以是字串或函式;如果是字串,則處理其中的任何反斜槓轉義。即,將其轉換為單個換行符,將其轉換為回車,依次類推。count引數表示將匹配到的內容進行替換的次數
importrestr = '
testtest123
'print(re.sub('
\d', '
one'
, str))
print(re.sub('
\d', '
one', str, 2))
testtestoneoneonetesttestoneone3
re.subn(pattern, repl, string, count=0, flags=0):執行與相同的操作sub(),但是返回乙個元組。(new_string,number_of_subs_made)
importrestr = '
testtest123
'print(re.subn('
\d', '
one'
, str))
print(re.subn('
\d', '
one', str, 2))
('testtestoneoneone
', 3)('
testtestoneone3
', 2)
re模組使用
import re strdata python is the best language in the world match只能匹配以 開頭的子符串,第乙個引數是正則,第二個引數是需要匹配的字串 res re.match p strdata,re.i re.i引數表示忽略大小寫 res re.m...
RE模組使用
i mport reli re.match d 12821j128j312893j129 match方法,先使用正規表示式,然後傳入待查字串 print li 結果物件 sre.sre match object span 0,5 match 12821 ifli print li.group 獲得資...
re模組使用案例
寫在前面的話 re模組當中有很多函式,但是以下三種 re.sub,re.findall,re.match 這三個命令是爬蟲當中經常使用到的 爬蟲當中經常使用到re.sub,re.findall,re.match 進行資料清洗,提取,請務必掌握好這3個命令。接下來就是一些小案例,訓練並掌握下對re.s...