({}{})中第乙個大括號替換為.則表示匹配所有字元,替換為則表示匹配中括號內限定的字元;
第二個大括號替換為*則表示匹配長度為》=0,替換為+則表示匹配長度為》=1,替換為空則表示匹配長度為1
(.*)表示匹配任意長度的所有字元
([0-9]*)表示匹配任意長度的數字
([0-9,a-z])表示匹配長度為1的數字和小寫字母
re.findall函式需要傳入2個引數,第1個引數是正規表示式,第2個引數是要進行搜尋的源字串。
re.findall函式返回結果的資料型別為列表,列表中的第1個元素的資料型別為元祖。
示例**如下:
import re
if __name__ == "__main__":
sourcestr = "11房5廳8衛"
sourcestr2 = "a房b廳3衛"
pattern_all = "(.*)房(.*)廳(.*)衛"
pattern_number = "([0-9]*)房([0-9]*)廳([0-9]*)衛"
pattern_numberandletter = "([0-9,a-z])房([0-9,a-z])廳([0-9,a-z])衛"
print("正規表示式找出中間的字元:")
result = re.findall(pattern_all, sourcestr)
print(result,type(result),type(result[0]))
print(re.findall(pattern_all,sourcestr2))
print("正規表示式找出中間的數字")
print(re.findall(pattern_number,sourcestr))
print(re.findall(pattern_number,sourcestr2))
print("正規表示式找出中間的數字和字母")
print(re.findall(pattern_numberandletter, sourcestr))
print(re.findall(pattern_numberandletter, sourcestr2))
上面一段**的執行結果如下:
正規表示式找出中間的字元:[('11', '5', '8')]
[('a', 'b', '3')]
正規表示式找出中間的數字
[('11', '5', '8')]
正規表示式找出中間的數字和字母
[('1', '5', '8')]
[('a', 'b', '3')]
\s 用於匹配單個空格符,包括tab鍵和換行符;
\s 用於匹配除單個空格符之外的所有字元;
\d 用於匹配從0到9的數字;
\w 用於匹配字母,數字或下劃線字元;
\w 用於匹配所有與\w不匹配的字元;
. 用於匹配除換行符之外的所有字元。
例如上一節中的([0-9]*)與([\d]*)作用相同
re.search函式需要傳入2個引數,第1個引數是正規表示式,第2個引數是要進行搜尋的源字串。
re.search函式返回結果的資料型別是sre.sre_match物件,span=(3,9)是匹配結果的索引,從索引3開始,不包括索引9。
把re.search函式返回結果賦值給result,通過result.group函式獲取匹配結果,result.group函式需要傳入1個引數,引數的資料型別為無符號整型,引數為0時,為正規表示式匹配到的長句內容;引數為1時,為正規表示式匹配到的第1個小括號中的內容;引數為2時,為正規表示式匹配到的第2個小括號中的內容,依此類推。
示例**如下:
import re
if __name__ == "__main__":
sourcestr = "戶型:3室2廳2衛"
pattern_all = "([\d]*)室(.)廳(.)衛"
result = re.search(pattern_all,sourcestr)
print(result)
print(result.group(0))
print(result.group(1))
print(result.group(2))
print(result.group(3))
上面一段**的執行結果如下:
<_sre.sre_match object; span=(3, 9), match='3室2廳2衛'>re,match在實際應用中很少,不建議使用。3室2廳2衛32
2
re.match能夠匹配的前提是必須字串索引0的位置能夠匹配到。
import re
if __name__ == "__main__":
re1 = "hel."
re2 = ".el"
re3 = ".hel"
re4 = "el"
sourcestr = "hello"
print(re.match(re1,sourcestr))
print(re.match(re2,sourcestr))
print(re.match(re3,sourcestr))
print(re.match(re3,sourcestr))
上面一段**的執行結果如下:
<_sre.sre_match object; span=(0, 4), match='hell'><_sre.sre_match object; span=(0, 3), match='hel'>
none
none
正規表示式 re庫
1.正規表示式的概念 a.為什麼要用正則?用字串匹配也是可以的 startswith 方法用於檢查字串是否是以指定子字串開頭,如果是則返回 true,否則返回 false。如果引數 beg 和 end 指定值,則在指定範圍內檢查。endswith 方法用於判斷字串是否以指定字尾結尾,如果以指定字尾結...
python 正規表示式 re
match 和 search 的區別 match是從字串開頭匹配,而search是在整個字串中匹配。如 p re.compile a z p.match message none 因為開頭是 因此無法匹配 而 m p.search message print m re.matchobject ins...
python正規表示式 re
re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import retext jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text ifm print m.group 0 n m...