statistics of Python
阿新 • • 發佈:2020-11-17
#!/usr/bin/python # coding: utf-8 import re ''' . 匹配任意字元(不包括換行符) ^ 匹配開始位置,多行模式下匹配每一行的開始 $ 匹配結束位置,多行模式下匹配每一行的結束 * 匹配前一個元字元0到多次 + 匹配前一個元字元1到多次 ? 匹配前一個元字元0到1次 {m,n} 匹配前一個元字元m到n次 \\ 轉義字元,跟在其後的字元將失去作為特殊元字元的含義,例如\\.只能匹配.,不能再匹配任意字元 [] 字符集,一個字元的集合,可匹配其中任意一個字元 | 邏輯表示式 或 ,比如 a|b 代表可匹配 a 或者 b (...) 分組,預設為捕獲,即被分組的內容可以被單獨取出,預設每個分組有個索引,從 1 開始,按照"("的順序決定索引值 (?iLmsux) 分組中可以設定模式,iLmsux之中的每個字元代表一個模式,用法參見 模式 I (?:...) 分組的不捕獲模式,計算索引時會跳過這個分組 (?P<name>...) 分組的命名模式,取此分組中的內容時可以使用索引也可以使用name (?P=name) 分組的引用模式,可在同一個正則表示式用引用前面命名過的正則 (?#...) 註釋,不影響正則表示式其它部分,用法參見 模式 I (?=...) 順序肯定環視,表示所在位置右側能夠匹配括號內正則 (?!...) 順序否定環視,表示所在位置右側不能匹配括號內正則 (?<=...) 逆序肯定環視,表示所在位置左側能夠匹配括號內正則 (?<!...) 逆序否定環視,表示所在位置左側不能匹配括號內正則 (?(id/name)yes|no) 若前面指定id或name的分割槽匹配成功則執行yes處的正則,否則執行no處的正則 \number 匹配和前面索引為number的分組捕獲到的內容一樣的字串 \A 匹配字串開始位置,忽略多行模式 \Z 匹配字串結束位置,忽略多行模式 \b 匹配位於單詞開始或結束位置的空字串 \B 匹配不位於單詞開始或結束位置的空字串 \d 匹配一個數字, 相當於 [0-9] \D 匹配非數字,相當於 [^0-9] \s 匹配任意空白字元, 相當於 [ \t\n\r\f\v] \S 匹配非空白字元,相當於 [^ \t\n\r\f\v] \w 匹配數字、字母、下劃線中任意一個字元, 相當於 [a-zA-Z0-9_] \W 匹配非數字、字母、下劃線中的任意字元,相當於 [^a-zA-Z0-9_] ''' def testdote(): str1 = 'hello<b><b><hb> <strong> </strong> <h1>world</h1>' print(re.sub(r"<.*?>",'09',str1))#hello09 09 09 09world09 print(re.sub(r"<strong>",'09',str1))#hello09 <strong> <strong> <h1>world</h1> print(re.sub(r"<[^>]+>",'x',str1))#helloxxx x x xworldx- print(re.sub(r"<[^strong]+>",'x',str1))#hellox <strong> <strong> xworldx print(re.sub(r"<[^h1]+>",'x',str1))#hellox<hb> x <h1>world</h1> str = "ab123ba4b56b" # + 匹配前一個元字元1到多次 # ? 匹配前一個元字元0到1次 print(re.sub(r"a(.?)b","-",str))#-123b-56b print(re.sub(r"[ab123]",'=',str))#=======4=56= print(re.sub(r"[^ab123$]",'.',str))#ab123ba.b..b print(re.findall(r"a(.+?)b", str))#['b123', '4'] print(re.findall(r"a(.?)b", str))#['', '4'] print(re.findall(r"a(.+)b", str))#['b123ba4b56'] print(re.findall(r"a(.*)b", str))#['b123ba4b56'] print(re.findall(r"a(.{1,3})b", str))#['4'] print(re.findall(r"a(.{1,4})b", str))#['b123', '4b56'] print(re.findall(r"a(.{1,10})b", str))#['b123ba4b56'] print(re.findall(r"a|b", str))#['a', 'b', 'b', 'a', 'b', 'b'] print(re.sub(r"a|b","x",str))#xx123xx4x56x print(re.sub(r"[^12$]","-",str))# --12-------- testdote()