如何使用正则表达式从以下文本中提取 url:
/url?q=http://www.linkedin.com/in/sujachandrasekaran&sa=u&ei=gptuu5b6kogtyatduicidq&ved=0cbqqfjaa&usg=afqjcnejdwki_gcnxgzsd4apxey1k2swlw
期望的结果是:
http://www.linkedin.com/in/sujachandrasekaran
我用过这个
a = "/url?q=http://www.linkedin.com/in/sujachandrasekaran&sa=u&ei=1jxuu8qxgtwaygs_u4gaaq&ved=0cceqfjaa&usg=afqjcnfl2pecdcddktw_pw9nelfohjp0ca"
linkedin_links = re.findall('(http.*)&',a)
它给了我这个:
u'http://www.linkedin.com/in/sujachandrasekaran&sa=u&ei=1jxuu8qxgtwaygs_u4gaaq&ved=0cceqfjaa'
最佳答案
代替正则表达式,使用适合工作的工具...
from urlparse import urlparse, parse_qs
url = '/url?q=http://www.linkedin.com/in/sujachandrasekaran&sa=u&ei=gptuu5b6kogtyatduicidq&ved=0cbqqfjaa&usg=afqjcnejdwki_gcnxgzsd4apxey1k2swlw'
qs = parse_qs(urlparse(url).query)['q']
# ['http://www.linkedin.com/in/sujachandrasekaran']
它将处理转义、多个 q
参数,您不必担心它出现在查询参数中的什么位置。
关于python - 使用正则表达式提取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335482/