正則表達式內的經常使用的函數 <2>

# -*- 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
"""
相關文章
相關標籤/搜索