python正则表达式匹配js或php url

时间:2016-12-03 22:24:01

标签: python regex

我尝试将js和php url与python re匹配 但是下面的表达不起作用,任何人都可以帮助我吗?

import re, urllib2
response = urllib2.urlopen('https://www.cnn.com')
s = response.read()
p = re.compile(r'^(http|https|//).+?\.(js|php)$')
m = p.findall(s)

for i in m:
    print i

此外,某些网页使用的是//,而不是httphttps。有没有办法匹配这些呢?

1 个答案:

答案 0 :(得分:1)

您似乎希望匹配以文件扩展名jsphp结尾的网址,这些网址可能以httphttps//开头。< / p>

使用

import re
s = "https://www.cnn.com/1.js!! http://www.cnn.com/2.php; //some.site.com/3.js,"
res = re.findall(r'(?:\bhttps?:)?//\S*\.(?:js|php)\b', s)
print(res)

请参阅Python demo

<强>详情:

  • (?:\bhttps?:)? - 可选序列
    • \b - 领先的单词边界
    • https?: - http,1或0(=可选)s:
  • // - 文字字符序列//
  • \S* - 零个或多个非空白符号
  • \. - 一个点
  • (?:js|php) - jsphp文字字符序列
  • \b - 尾随字边界