0

特定のサイトから時間形式を切り取ろうとしています。正規表現は機能しています(正規表現テスターで試して機能しました)が、Pythonでコードを実行しようとすると次のようになります:

import urllib,re

sock = urllib.urlopen("http://www.wolframalpha.com/input/?i=time")
htmlSource = sock.read()
sock.close()
ips = re.findall( r'([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}',htmlSource)
print ips

結果:

>>>
['7', '4']
>>>

regextester.comの時刻は赤色でマークされています。時刻を次の形式で抽出したいと思います: xx:xx:xx (24h)。

なぜそれが起こっているのですか?ありがとうございました!

4

1 に答える 1

1

正規表現に冗長な量指定子がいくつかあります (これらの{1})。それらを削除できます。

もう 1 つのことはre.findall、時間であるキャプチャのみを返すことです。最初のキャプチャを非キャタリング グループに変更し、(?: ... )正規表現全体をキャプチャします。

((?:[01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])

これは私が思うにそれをしているはずです。

于 2013-08-19T17:09:11.547 に答える