用于在python中使用查询字符串/参数过滤url的正则表达式

时间:2014-05-06 16:02:11

标签: python regex urlparse

我有一个代码循环遍历网址列表进行一些操作,但输入的网址必须包含查询字符串,我想首先检查网址是否正确,实际上是否包含查询字符串,我搜索了大部分内容正则表达式我发现只检查网址,我发现最接近的解决方案是使用像这样的urlparse

#!/usr/local/bin/python2.7

from urlparse import urlparse
line = "http://www.compileonlinecom/execute_python_online.php?q="
o = urlparse(line)
print o
# ParseResult(scheme='http', netloc='www.compileonlinecom',          path='/execute_python_online.php', params='', query='q=', fragment='')

if (o.scheme=='http' and o.query!=''):
print "yes , that is a url with query string  "

else:
   print "No match!!"

但我想知道是否可以使用更稳固的正则表达式来完成

1 个答案:

答案 0 :(得分:0)

您可以尝试在问号上验证它,因为每个带参数的网址都应在网址中包含问号。

示例:

sites = ['site.com/index.php?id=1', "xyz.com/sf.php?df=22", "dfd.com/sdgfdg.php?ereg=1", "normalsite.com"]
for site in sites:
    if "?" in site:
         print site

结果:

site.com/index.php?id=1
xyz.com/sf.php?df=22
dfd.com/sdgfdg.php?ereg=1

您看到没有参数的网站尚未打印。