我正在尝试从以下文本中获取 482.75:<span id="yfs_l84_aapl">482.75</span>
我使用的正则表达式是:regex = '<span id="yfs_l84_[^.]*">(.+?)</span>'
它有效。
但我不明白的是为什么 [^.]* 可以在这里匹配 aapl?我的理解是这样的。指除换行符以外的任何字符;和 ^ 表示否定。所以 [^.] 应该是换行符,而 [^.]* 应该是任意数量的换行符。然而,这个理论与现实世界的实施相反。
任何帮助表示赞赏并提前感谢。
我使用的python代码:
import urllib
import re
htmlfile = urllib.urlopen("http://finance.yahoo.com/q?s=AAPL&ql=0")
htmltext = htmlfile.read()
regex = '<span id="yfs_l84_[^.]*">(.+?)</span>'
pattern = re.compile(regex)
price = re.findall(pattern, htmltext)
print "the price of of aapl is", price[0]