匹配測試html
. 匹配除\n換行符以外的任何單個字符。正則表達式
[ ] 匹配括號中的任何一個字符。 若是要想匹配二十六個英文字母中的任意一個怎麼寫呢? a[a-z]b 若是也想匹配大寫的A—Z的話,須要這麼寫 a[a-zA-Z]b測試
| 將兩個匹配條件進行邏輯「或」運算。 如a[a|b]b z|food 要麼是z,要麼是food (z|f)ood 加小括號改變優先級spa
( ) 將 () 之間括起來的表達式定義爲「組」(group),而且將匹配這個表達式的字符保存到一個臨時區域,這個元字符在字符串提取的時候很是有用。把一些字符表示爲一個總體。改變優先級、定義提取組兩個做用。.net
元字符2(限定符):code
* 匹配0至多個在它以前的子表達式,和通配符*不要緊。 如 zoo* ,*表示能夠出現0次,也能夠出現屢次。(無關緊要,可多可少)htm
+ 匹配前面的子表達式一次或屢次 如zoo+ ,+表示能夠出現一次,或者是屢次。(至少得出現一次。) 注意:* +只表示o的出現次數,要是想表示前面的整個表達式,得用小括號括起來。對象
? 匹配前面的子表達式零次或一次。 如zoo? ,要麼0次,要麼1次。blog
{n} 匹配肯定的 n 次。字符串
{n,m} 最少匹配 n 次且最多匹配 m 次。
元字符3
^(shift+6) 匹配一行的開始。如^xxx. 表示字符串必須以三個先開頭,後面跟任意的單個字符。它還有一個意思就是取反的意思,如 a[^a-zA-Z0-9]b 表示中間去大小寫字符和數字都不行。
$ 匹配行結束符。 如xxx.$ 表示結尾必須以xxx加任意字符結束。
接下來咱們再看一些個元字符(一些簡寫的方式):
\d 表明一個數字,等同於[0-9] 如a[0-9]b a\db
\D 表明非數字,等同於[^0-9]
\s 表明換行符、Tab製表符等空白字符 ,(空格、回車、製表符)
\S 表明非空白字符(a0%$@@)
\w 匹配字母或數字或下劃線或漢字,即能組成單詞的字符,除%&#@!$等字符。[a-zA-Z0-9_漢字]
\W 非\w ,等同於[^\w] %
import re
.* 貪婪匹配,匹配儘量多
.*? 非貪婪匹配,匹配儘量少 #字符串中間儘量用非貪婪,避免結果缺失
import re content1=2016-12-15 12:00 content2=2016-12-17 12:55 content3=2016-12-22 13:21 pattern=re.compile(\d{2):\d(2)) result1 =re. sub(pattern,'',content1) result2=re. sub(pattern,'',content2) result3= re. sub(pattern,'',content3) print(result1,result2, result3)