我正在尝试从特定网站中删除时间格式。正则表达式正在工作(尝试使用正则表达式测试并且工作),但是当我尝试在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)。
为什么会这样?谢谢!
答案 0 :(得分:1)
您的正则表达式中有一些冗余量词({1}
)。你可以删除它们。
另一件事是re.findall
仅返回您的捕获,即小时数。将第一个捕获更改为非捕获组(?: ... )
并捕获整个正则表达式:
((?:[01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])
我认为应该这样做。