用下面的正则表达式会造成死循环,具体原因后面分析
import re
url = "http://search.www.gov.cn/search/fw/cateSearch.do?webid=1&category=bmfw&q="
if re.match('^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$', url):
print 'ok'
else:
print 'no'
换一个url的正则语法完了
url = "http://search.www.gov.cn/search/fw/cateSearch.do?webid=1&category=bmfw&q="
if re.match('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', url):
print 'ok'
else:
print 'no'