re模塊就本質而言,正則表達式(或RE)是一種小型的、高度專業化的編程語言,(在python中)它內嵌
在Python中,並經過re模塊實現,正則表達式模塊被編譯成一系列的字節碼,而後由用C編寫的匹配引擎執行。
字符匹配(普通字符、元字符)
#一、正則表達式使用: 用來匹配字符的
普通字符:大多數字符和字母都會和自身匹配
import re
# s = "hello world"
#
# print(s.find("llo"))
# ret = s.replace("ll","xx")
# print(ret)
# print(s.split("w"))
2元字符: . ^ $ * + ? { } [] | () \
#. 任意匹配(除\n外)
ret = re.findall("h...o","hello world")
print(ret)
#^ 從前匹配
ret = re.findall("^h...o","hewdo world hexno")
print(ret)
#$ 從後匹配
ret = re.findall("w..d$","wdifdhello sdwordwold")
print(ret)
#* 重複匹配
ret = re.findall("ab*","hello world i come aback")
print(ret)
#+ 至少出現一次匹配
ret = re.findall("a+b","adsdfbadbababdjfn")
print(ret)
#? [0,1] 最多出現一次匹配
ret = re.findall("a?b","abdsdfbadbababdjfn")
print(ret)
#{ } 貪婪匹配
ret = re.findall("a{1,3}b","adsdfbaaabbabbbdaadbababdjfn") #{1,}等價於{1,+00}
print(ret)
結論:* 等於 {0到正無窮} + 等價於{1到正無窮} ?等價於{0,1}
#[]字符集:取消元字符的特殊功能ret = re.findall("[w,,]","awdx.,")print(ret)#反斜槓後邊跟普通字符實現特殊功能\d 匹配任何十進制數 它至關於類[0-9]\D 匹配任何非數字字符 它至關於類[^0-9]\s 匹配任何空白字符 它至關於類 [ \t\n\r\f\v]\S 匹配任何非空白字符 它至關於類 [^ \t\n\r\f\v]\w 匹配任何字母數字字符,它至關於類 [1-zA-Z0-9_]\W 匹配任何非字母數字字符,它至關於類 [^1-zA-Z0-9_]#正則表達式的方法: 一、findall(): 全部結果都返回到一個列表裏 二、search(): 返回匹配到的一個對象(object),對象能夠調用group()返回結果 三、match(): 只在字符串開始匹配時匹配,也返回匹配到的第一個對象(object),對象能夠調用groupret = re.match("assd","asdgfhjdk")print(ret)print(ret.group())