python - 使用正则表达式提取 url

标签 python regex

如何使用正则表达式从以下文本中提取 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/

相关文章:

python - 如何使用Python的re模块检测字符串中的重复模式

c++ - 在文本中查找特定标记并验证它们(RegExp?)

c# - 如何使用正则表达式检查 2 个字符?

python - 在 Virtualenv Numpy 中从 Flask 导入 Numpy 时出现多数组导入错误

python - PyDev 代码分析在 Aptana Studio 中不起作用

python - 使用 networkx 加权边缘列表时出错

python - 如何提取支票/支票图像中的帐号

javascript - 不允许特殊字符的正则表达式 (Javascript)

python - 在 Odoo ORM 中处理 SQL 约束异常

Python re.sub 仅更改单词 'a',而不是将 'a' 的每个实例更改为字母