我尝试将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
此外,某些网页使用的是//
,而不是http
或https
。有没有办法匹配这些呢?
答案 0 :(得分:1)
您似乎希望匹配以文件扩展名js
和php
结尾的网址,这些网址可能以http
,https
或//
开头。< / 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)
- js
或php
文字字符序列\b
- 尾随字边界