2、findall
(返回查到的資料,不會返回位置資訊)
先引用re模組:
import re
1)、查詢指定字串:
re.search(r'fish', 'i like fish,hhhhhhh) #返回字串位置和要查詢的字串:span=(3, 4), match='2'
2)、查詢萬用字元(python中的萬用字元是「.」,匹配除了換行符之外的所有字元)
re.search(r'.', 'i like fish,hhhhhhh )
#返回第乙個字元的位置和字元:span=(0, 1), match='i'
取消「.」的萬用字元特性,加'\'
re.search(r'\.', 'i like fish,hhhhhhh ) #返回'.'的位置
re.search(r'[.]', 'i like fish,hhhhhhh ) #採用字元類,將"."當成乙個普通字串來處理
3)、匹配數字
re.search(r'\d\d\d', 'i like 123 fish,hhhhhhh ) #幾個\d就是匹配幾個連續的數字,\d個數多於字串中數
字個數時,匹配不到
4)、字元類,幾個字元中,匹配到任意乙個,即匹配成功
(字元類:將中括號中的資料當成乙個普通的字串來處理,除了個別特殊情況)
re.search(r'[aeiou]', 'i like 123 fish,hhhhhhh) #匹配到aeiou中的任意乙個即可,返回字串中匹配到的第一
個字元的位置,和字元
re.search(r'[0-9]' , 'i like 123 fish,hhhhhhh ) #匹配0-9數字中的任意乙個,
正規表示式匹配的是字串,數字對於字串只有0-9組成;9以上的,表示兩個或更多個字元
舉例:re.search(r'[0-255]','236') #匹配的是0-2、5,即匹配0,、1、2、5幾個鐘的任意乙個
多次匹配:
re.search(r'ab
c', 'abbbbbbbbbc') #匹配有2-10個b的abc
5)、匹配 ip位址
1、re.search(r'[01]\d\d|2[0-4]\d|25[0-5]','136')
#雛形,匹配乙個指定範圍內的數字
#解析:1、[01]\d\d:第一位數字是0或1的三位數
2、2[0-4]\d
:第一位數字是2,第二位是0、1、2、3、4的三位數
3、25[0-5]:第一位是2,第二位是5,第三位是0、1、2、3、4、5的三位數
查詢乙個三位數是1 或 2 或 3三種情況中的任意一種
2、re.search(r'(([01]\d\d|2[0-4]\d|25[0-5])\.)
([01]\d\d|2[0-4]\d|25[0-5])','192.186.1.1')
#[01]\d :表示第一位第二位數字出現次數可以是0次或1次,避免了1位數匹配不到的情況
# :重複三次
公升級版:(search)
re.search(r'((
[01]?\d?\d|2[0-4]\d|25[0-5])\.
)([01]?\d?\d|2[0-4]\d|25[0-5])','192.186.1.1')
# ? : 表示重複0次或者1次
公升級版:
(findall
)re.search(r'
(?:
(?:
[01]?
\d?
\d|2[0-4]\d|25[0-5])\.
)(?:
[01]?\d?\d|2[0-4]\d|25[0-5])','192.186.1.1')
# ?: :取消元祖獲取資料
6 )、元字元( . ^ $ * + ? ( ) [ ] | \ )
1、| (或)
re.search(r"fish(c|d)","like fishc")
2、^ (以xx開頭)
re.search(r"^fish", "fishc.com")
re.search(r"[^a-z]", "fishc.com")
#返回除了a-z的字元,取反
re.search(r"[a-z^]", "fishc.com") #返回在a-z範圍內的字元
3、$ (以xx結尾)
re.search(r"fish$"," i like fish") 4、
re.search(r"fish(3)"," i like fishfishfish")
#匹配fishfishfish
re.search(r"fish(1,3)"," i like fishfish") #匹配fish1到3個就可以
5、 * + ?
*:匹配前面的表示式
0或多次
+:匹配前面的表示式
1或多次
?:
匹配前面的表示式
0或1次
可與「.」合用,
在最後加上「?」,可以只找第乙個
p = re.compile(r"[a-z]")
p.search("i like fish")
正規表示式忽略空格:
p = re.compile(r"[a-z] [0-9]", re.verbose)
p.search("i like li8")
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...