【发布时间】:2014-07-13 04:44:14
【问题描述】:
大家好:我有一个字符串
s2 = '[u\'\\n\', <td><a href="/etf/UVXY/">UVXY</a></td>, u\'\\n\', <td><a href="/etf/
UVXY/">Ultra VIX Short-Term Futures ETF</a></td>, u\'\\n\', <td class="rightnobr">+7'
pat = re.compile('<a href=.+>(.+)</a>')
re.findall(pat,s2) only returns ['Ultra VIX Short-Term Futures ETF']..
为什么它不能捕获字段 ['UVXY']?如果我这样做了
s22 ='[u\'\\n\', <td><a href="/etf/UVXY/">UVXY</a></td>, u\'\\n\', <td><'
re.findall(pat,s2) did return ['UVXY']
【问题讨论】:
-
这是一种比较奇怪的输入数据格式,它是从哪里来的?
-
输入的字符串有两行吗?
-
或者,不使用正则表达式来匹配 HTML,这通常是一个糟糕的想法,为什么不使用像
BeautifulSoup这样的解析器? -
@alecxe etfdb.com/compare/volume 伙计们别担心。问题解决了
-
@XunBao 所以这是您使用正则表达式解析的 HTML。你不应该这样做,那里有 HTML 解析器。