正則表達式

匹配測試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

  • match(‘正則表達式’,'要匹配的字符串')#對象=re.match()   從字符串開頭匹配
  • span()  輸出匹配範圍    #對象.span()
  • group()    正則中把要提取的用括號擴出來,輸出時第幾個括號就group(幾)

.*      貪婪匹配,匹配儘量多

.*?  非貪婪匹配,匹配儘量少            #字符串中間儘量用非貪婪,避免結果缺失

  • 經常使用修飾符  #用在match search的參數裏
    • re.I  使大小寫敏感
    • re.S    使 . 匹配包括換行符    大多數html包含換行符,匹配時儘可能都加
  • 轉義匹配
    •   在要轉的前面加上  \
  • search(‘正則表達式’,'要匹配的字符串')  匹配時掃描整個字符串,返回第一個成功的結果
  • findall(‘正則表達式’,'要匹配的字符串'))  匹配時掃描整個字符串,返回全部成功的結果  
  • sub('能匹配要替換部分的正則','將要替換爲的字符串','原字符串')    修改文本
  • compile()
    • 將正則字符串編譯成正則表達對象,便於複用  
       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)
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息