私は、次のテキストから482.75を取得しようとしている:regex = '<span id="yfs_l84_[^.]*">(.+?)</span>'
、それが働いた:私が使用<span id="yfs_l84_aapl">482.75</span>
正規表現では[^。] *は何を意味しますか?
正規表現です。
しかし、私が理解していないことは、[^。] *がここに一致する理由です。私の理解はそれです。改行以外の文字を意味します。 ^はネゲーターを意味する。したがって、[^。]は改行でなければならず、[^。] *は任意の数の改行でなければなりません。しかし、この理論は現実世界の実装に反する。
ご協力いただきありがとうございます。
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]
Pythonのドキュメントでは、[特殊文字はセット内で特別な意味を失います](http://docs.python.org/2/library/re.html#regular-expression-syntax)のように明示的にも言います。 – Evert
なぜそれが 'aapl'と一致しないのか? – Anirudha
@Anirudh:そうです。 –