# -*- coding:utf-8 -*- # 正則函數 import re # 1,match() # 2 search() string = "hel3lo wor5ld hel4lo, he,he6ll,hool" pattern = re.compile("h.*?l") # 3 findall() 查找符合條件的全部的字符串 # 最終返回一個列表,符合全部條件的 res = re.findall(pattern, string) print(res) # 3 split()根據正則將字符串進行分割,返回存放分割後的字符串的列表 pattern = re.compile("\d+") # (1) 正則 (2) 字符串 3 最大分割次數 res = re.split(pattern, string, 1) print("2", res) # 4 sub()函數 用於替換目標字符串中符合正則的字符,默認替換全部,返回是字符串 pattern = re.compile("\d+") # 1 正則 2 替換後的字符串 3 大字符串 4 替換次數 res = re.sub(pattern, "+", string) print("3", res) # string3 = "<p><r></r></p>" # #pattern = re. string4 = """<ul><li><a href='/html/tv/hytv/110680.html' title="2017年大陸國產劇《鳳囚凰》連載至28">2017年大陸國產劇《鳳囚凰》連載至28</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110723.html' title="2017年香港港臺劇《無間道2018(粵語)》連載至16">2017年香港港臺劇《無間道2018(粵語)》連載至16</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110821.html' title="2017年香港港臺劇《波士早晨(國語)》連載至15">2017年香港港臺劇《波士早晨(國語)》連載至15</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110825.html' title="2017年香港港臺劇《波士早晨(粵語)》連載至43">2017年香港港臺劇《波士早晨(粵語)》連載至43</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110857.html' title="2017年大陸國產劇《個人父親個人兵》連載至22">2017年大陸國產劇《個人父親個人兵》連載至22</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110863.html' title="2017年香港港臺劇《三個女人一個因(粵語)》連載至5">2017年香港港臺劇《三個女人一個因(粵語)》連載至5</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110891.html' title="2017年大陸國產劇《人生若如初相見》連載至8">2017年大陸國產劇《人生若如初相見》連載至8</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110896.html' title="2017年大陸國產劇《利刃出擊》連載至7">2017年大陸國產劇《利刃出擊》連載至7</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110897.html' title="2017年大陸國產劇《美好生活》連載至8">2017年大陸國產劇《美好生活》連載至8</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110895.html' title="2017年大陸國產劇《烈火如歌》連載至6">2017年大陸國產劇《烈火如歌》連載至6</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110790.html' title="2017年大陸國產劇《談判官》連載至43">2017年大陸國產劇《談判官》連載至43</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/109048.html' title="2017年香港港臺劇《愛回家之開心速遞》連載至268">2017年香港港臺劇《愛回家之開心速遞》連載至268</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110820.html' title="2017年大陸國產劇《櫃中美人》連載至29">2017年大陸國產劇《櫃中美人》連載至29</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110763.html' title="2017年大陸國產劇《東山晴後雪》連載至28">2017年大陸國產劇《東山晴後雪》連載至28</a><span><font color=#FF0000>03-02</font></span></li><li><a href='/html/tv/hytv/110696.html' title="2017年大陸國產劇《警犬來啦》連載至47">2017年大陸國產劇《警犬來啦》連載至47</a><span><font color=#FF0000>03-01</font></span></li></ul>""" pattern = re.compile('''<a href='(.*?)' title="(.*?)"''') res = re.findall(pattern, string4) for r in res: print("連接:{} 名稱:{}".format(r[0], r[1])) res = re.search(pattern, string4) print(res) if res: # 正則表達式包含()分組,group獲取的匹配字符串 #print(res.group()) #經過分組的索引,獲取對應小分組的信息,分組的索引從1 開始 # print(res.group(1)) print(res.group(2)) else: print("沒有匹配到數據") """ ['hel', 'hel', 'he,he6l', 'hool'] 2 ['hel', 'lo wor5ld hel4lo, he,he6ll,hool'] 3 hel+lo wor+ld hel+lo, he,he+ll,hool 連接:/html/tv/hytv/110680.html 名稱:2017年大陸國產劇《鳳囚凰》連載至28 連接:/html/tv/hytv/110723.html 名稱:2017年香港港臺劇《無間道2018(粵語)》連載至16 連接:/html/tv/hytv/110821.html 名稱:2017年香港港臺劇《波士早晨(國語)》連載至15 連接:/html/tv/hytv/110825.html 名稱:2017年香港港臺劇《波士早晨(粵語)》連載至43 連接:/html/tv/hytv/110857.html 名稱:2017年大陸國產劇《個人父親個人兵》連載至22 連接:/html/tv/hytv/110863.html 名稱:2017年香港港臺劇《三個女人一個因(粵語)》連載至5 連接:/html/tv/hytv/110891.html 名稱:2017年大陸國產劇《人生若如初相見》連載至8 連接:/html/tv/hytv/110896.html 名稱:2017年大陸國產劇《利刃出擊》連載至7 連接:/html/tv/hytv/110897.html 名稱:2017年大陸國產劇《美好生活》連載至8 連接:/html/tv/hytv/110895.html 名稱:2017年大陸國產劇《烈火如歌》連載至6 連接:/html/tv/hytv/110790.html 名稱:2017年大陸國產劇《談判官》連載至43 連接:/html/tv/hytv/109048.html 名稱:2017年香港港臺劇《愛回家之開心速遞》連載至268 連接:/html/tv/hytv/110820.html 名稱:2017年大陸國產劇《櫃中美人》連載至29 連接:/html/tv/hytv/110763.html 名稱:2017年大陸國產劇《東山晴後雪》連載至28 連接:/html/tv/hytv/110696.html 名稱:2017年大陸國產劇《警犬來啦》連載至47 <_sre.SRE_Match object; span=(8, 72), match='<a href=\'/html/tv/hytv/110680.html\' title="2017> 2017年大陸國產劇《鳳囚凰》連載至28 """
2 正則DOTALL模式:re.S開啓DOTALL模式,. 能夠代替\nhtml
import re string = ''' aaaa dddd ssss f ewr ads ''' # re.s 做用就是將大字符串的換行符看作一個普通的字符串進行處理 # 這樣\n 也能匹配了 pattern = re.compile("a.*?d", re.S) res = re.search(pattern, string) print(res.group()) """ aaaa d """