作者Holocaust123 (奔跑的蝸牛)
看板Python
標題Re: [問題] 字串判斷
時間Fri Apr 15 09:40:30 2011
※ 引述《elvisteal (TEAL)》之銘言:
: <font color="#00FFFF">[\xe3\x83\x97\xe3\x83\xac\xe3\x82\xa4\xe3\x83\xa4\xe3\x83\xbc\xe5\x90\x8d]</font><br>\n
: \t\xe7\xb6\xbe\xe9\x83\xa8<br>
: 請問若有一串字串是這樣子
: 而\xe7\xb6\xbe\xe9\x83\xa8 是不定變數,長度也不一樣不過最後一定會有<br> (其它都是固定的)
: 請問我要如何抓取這不定變數?
使用 regular expression 的 grouping 即可...
#coding=utf8
import re
html = ur"""<font color="#00FFFF">[\xe3\x83\x97\xe3\x83\xac\xe3\x82\xa4\xe3\x83\xa4\xe3\x83\xbc\xe
5\x90\x8d]<\font><br>\n
\t\xe7\xb6\xbe\xe9\x83\xa8<br>"""
pattern = ur'<font color=.*?>.*?<\\font><br>\\n.*?\\t(.*?)<br>'
pattern = re.compile(pattern, re.DOTALL)
iterator = re.finditer(pattern, html)
for matcher in iterator:
print matcher.group(1)
執行結果:
\xe7\xb6\xbe\xe9\x83\xa8
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.46
推 elvisteal:感謝~我大概參照了一下您的搜索方法,再全印出去切割 04/15 12:14
→ elvisteal:不過re.DOTALL 我再去找書看看好了><"有點看不懂為什麼 04/15 12:15
Python的regex engine預設的
. 不會match斷行符號(EOL)
這樣就不適用在你的情況(因為html很少會只有一行)
re.DOTALL是讓regex的
. 可以match斷行符號
※ 編輯: Holocaust123 來自: 140.112.30.46 (04/15 12:42)
推 elvisteal:原來如此!這判斷真不錯,可以用很多模擬get了! 04/15 15:21
→ elvisteal:差不多弄懂要怎麼去抓判斷了 04/15 15:21