正規表示式:
一、定義:是乙個特殊的字串行,它能方便地檢查乙個字串是否與某種模式匹配。
二、作用:正規表示式為高階文字模式匹配,以及文字的檢索與替換等功能提供了基礎。
三、正規表示式中常用的字元含義:
四、re模組中常用功能函式:
1.compile():
須知:當我們在python中使用正規表示式時,re模組內部會幹兩件事情:編譯正規表示式,如果正規表示式的字串本身不合法,會報錯;用編譯後的正規表示式去匹配字串。
(1)compile()作用:當乙個正規表示式要重複使用很多次,出於效率的考慮,我們可以預編譯該正規表示式,接下來重複使用時就不需要編譯這個步驟了,直接匹配.
(2)格式:re.compile(pattern,flags=0)
pattern: 編譯時用的表示式字串。
flags :編譯標誌位,用於修改正規表示式的匹配方式,如:是否區分大小寫,多行匹配等,可有可無,按需新增。常用的flags有標誌
含義 re.s(dotall)
使.匹配包括換行在內的所有字元
re.i(ignorecase)
使匹配對大小寫不敏感
re.l(locale)
做本地化識別(locale-aware)匹配,法語等
re.m(multiline)
多行匹配,影響^和$
re.x(verbose)
該標誌通過給予更靈活的格式以便將正規表示式寫得更易於理解
re.u
根據unicode字符集解析字元,這個標誌影響\w,\w,\b,\b
eg. import re
s1 = "tina is a good girl, she is cool, clever, and so on..."
s2 = "too young too ******"
rr = re.compile(r'\w*oo\w*')
print(rr.findall(s1)) #查詢所有包含'oo'的單詞
print(rr.findall(s2)) #查詢所有包含'oo'的單詞
執行結果如下:
['good', 'cool']
['too', 'too']
2.match():
(1)嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。
注:re.search會在給定字串中尋找第乙個匹配給定正規表示式的子字串。
(2)re.match(pattern, string, flags=0)引數
描述 pattern
匹配的正規表示式
string
要匹配的字串。
flags
標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等。
可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式
匹配物件方法 描述
group(num=0)
匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。
groups()
返回乙個包含所有小組字串的元組,從 1 到 所含的小組號。
3.re.search()
(1)掃瞄整個字串並返回第乙個成功的匹配。
語法:re.search(pattern, string, flags=0)
(2)與re.match()非常相似,但re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;re.search匹配整個字串,直到找到乙個匹配
4.re.sub()
(1)re.sub(pattern, repl, string, count=0, flags=0)
(2)eg.
import re
phone = "2004-959-559 # 這是乙個國外**號碼"
# 刪除字串中的 python注釋
num = re.sub(r'#.*$', "", phone)
print "**號碼是: ", num
5.re.findall()
(1)re.findall遍歷匹配,可以獲取字串中所有匹配的字串,返回乙個列表。
6.re.split()
(1)按照能夠匹配的子串將string分割後返回列表。
(2)eg.
import re
print(re.split('\d+','one1two2three3four4five'))
執行結果如下:
['one', 'two', 'three', 'four', 'five']
正規表示式說明
正規表示式中具有特殊含義的字元稱之為元字元,常用的元字元有 一般用於轉義字元 斷言目標的開始位置 或在多行模式下是行首 斷言目標的結束位置 或在多行模式下是行尾 匹配除換行符外的任何字元 預設 開始字元類定義 結束字元類定義 開始乙個可選分支 子組的開始標記 子組的結束標記 作為量詞,表示 0 次或...
正規表示式符號說明
字元 功能 匹配任意1個字元 除了 n 匹配 中列舉的字元 d 匹配數字,即0 9 d 匹配非數字,即不是數字 s 匹配空白,即 空格,tab鍵 s 匹配非空白 w 匹配單詞字元,即a z a z 0 9 w 匹配非單詞字元 匹配字串開頭 匹配字串結尾 b 匹配乙個單詞的邊界 b 匹配非單詞邊界 匹...
python 正規表示式,函式說明
1,findall pattern,string 返回所有符合pattern的字串,返回值是列表的格式 如果匹配有多個分組,那麼列表的元素是乙個元組 key my w2014 12 12orld hello a2015 10 10ahello pat re.compile d d d re.i re...