re模塊

RE模塊python

  • 查找
    • findall
      • 匹配全部每一項都是列表中的一個元素
      • re.findall()
        • 正則表達式,帶匹配的字符串,flag
    • search
      • 只匹配從左到右的第一個結果,獲得的不是直接的結果,而是一個變量,經過這個變量group方法來獲取結果
      • re.search 內存地址,這是一個正則的結果,
        • 經過ret.group()獲取真正的結果
      • 若是沒有匹配到,會返回None,使用.group()會報錯
    • match
      • 匹配從頭開始匹配,至關於search中的正則表達式加上一個^
      • ret = re.match ('正則推導式','字符串')
  • 字符串處理的擴展:替換 切割
    • split
      • 切割 返回列表,按照正則規矩進行切割,默認匹配到的內容會被切割
    • sub
      • 替換 舊的 新的 次數
      • 替換,按照正則規則去尋找要被替換的內容,
    • subn
      • 返回一個元組,第二個元素是替換的次數
  • re模塊的進階
    • compile 節省你使用正則表達式解決問題的時間
      • 編譯正則表達式編譯成 字節碼
      • 在屢次使用的過程當中, 不會屢次編譯
      • 編譯一個正則表達式,用這個結果去search match findall
    • finditr 節省你使用正則表達式解決問題的時間
      • 返回一個迭代器,全部的結果都在這個迭代器中, 須要經過循環+group的形式取值 , 可以節省內存
  • 分組在python中 的應用
    • 爲了findall也能夠順利取到分組中的內容,有一個特殊的語法,就是優先顯示分組中的內容
    • 取消分組優先(?:正則表達式)
      • # ret = re.findall('\d+(?:\.\d+)', '144.365')
  • 分組命名
    • 對於python而言來講 分組能夠幫助你更好更精確的找到你真正須要的內容
    • (?P<這個組的名字>正則的表達式)
      • # s = '<a>wahaha</a>'
      • # ret = re.search('>(?P<con>\w+)<',s)
      • # print(ret.group(1))
      • # print(ret.group('con'))
    • 使用前面的分組 要求使用這個名字的分組和前面同名分組中的內容匹配的必須一致
      • 使用前面的分組 要求使用這個名字的分組和前面同名分組中的內容匹配的必須一致
      • # pattern = '<(?P<tab>\w+)>(\w+)</(?P=tab)>'
      • # ret = re.search(pattern,s)
      • # print(ret)
      • 當結果是None表示兩個同名不匹配.
      • 結果是一個內存表達式表示兩個同名匹配
  • 正則表達式若是寫的足夠好 可以最大限度的簡化咱們的操做
    • 掌握做業中的全部內容
    • 可以看懂經常使用正則表達式
    • 而且可以作出一些公司特異性要求的修改
  • 示例
相關文章
相關標籤/搜索