求ASP正则匹配CSS

邱嵩松 2015-02-19 09:39:58
<link href='a.css' type=text/css rel=stylesheet>
<link type=text/css href='a.css' rel=stylesheet>
<link type=text/css rel=stylesheet href='a.css' >
一句代码可以匹配上方,但不能匹配下方
<link rel="dns-prefetch" href="//bbs.csdn.net">

即CSS的路径href左或右 必须有stylesheet的link部分 才匹配
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
regEx.pattern="<link[^>]*?href=['""]{0,1}([^'""]*?\.css)['""]{0,1}[^>]*?>" 正则纠正一些,可以考虑到没有单双引号的情况
  • 打赏
  • 举报
回复
还有一点,按你的思路程序这么写:
qsshtml = "<link href='a.css' type=text/css rel=stylesheet> <link type=text/css href='a.css'  rel=stylesheet> <link type=text/css rel=stylesheet href='a.css' >"
response.Write("--开始匹配 <br>")
dim resultcss,cssname,cssfromurl,resultcsshtml,cssinurl
dim regEx,Matches
set regEx = new regexp 
regEx.ignorecase=true 
regEx.global=true 
regEx.pattern="<link([^<>]*)(rel\=['""]*stylesheet['""]*)?[^<>]*href\=['""]*(.*?)['""]*[^>]*(rel\=['""]*stylesheet['""]*)?[^>]*>" 
set Matches = regEx.execute(qsshtml) 
for each Match in Matches
resultcss=Match.value
resultcss=replace(resultcss,"<","<")
response.Write " 发现css : " & resultcss & "<br>"   
next 
set resultcss = nothing 
set regEx = nothing
得出的结果是
发现css : <link href='a.css' type=text/css rel=stylesheet>
发现css : <link type=text/css href='a.css' rel=stylesheet>
发现css : <link type=text/css rel=stylesheet href='a.css' >
这样的,还不能一下就得到href里的css结果的 看看我上面提出的思路:
qsshtml = "<link rel='dns-prefetch' href='//bbs.csdn.net'><link href='a.css' type=text/css rel=stylesheet> <link type=text/css href='a.css'  rel=stylesheet> <link type=text/css rel=stylesheet href='a.css' >"
response.Write("--开始匹配 <br>")
dim resultcss,cssname,cssfromurl,resultcsshtml,cssinurl
dim regEx,Matches
set regEx = new regexp 
regEx.ignorecase=true 
regEx.global=true 
regEx.pattern="<link[^>]*?href=['""]([^'""]*?\.css)['""][^>]*?>" 
set Matches = regEx.execute(qsshtml) 
for each Match in Matches
resultcss=regEx.Replace(Match.value, "$1")
response.Write " 发现css : " & resultcss & "<br>"   
next 
set resultcss = nothing 
set regEx = nothing
这个得到的结果是:
发现css : a.css
发现css : a.css
发现css : a.css
  • 打赏
  • 举报
回复
引用 7 楼 qiuss 的回复:
<% qsshtml = "<link href='a.css' type=text/css rel=stylesheet> <link type=text/css href='a.css' rel=stylesheet> <link type=text/css rel=stylesheet href='a.css' >" response.Write("--开始匹配2!<br>") response.flush dim resultcss,cssname,cssfromurl,resultcsshtml,cssinurl dim re2,m2,n2 set re2 = new regexp re2.ignorecase=true re2.global=true re2.pattern="<link (?=[^<>]*stylesheet)[^<>]*href=[^<>]*>" '获取CSS内的图片 set m2 = re2.execute(qsshtml) for each n2 in m2 resultcss = n2.submatches(0) response.Write("-发现css:"&resultcss&"<br>") next set m2 = nothing set re2 = nothing %>
如果只是匹配link里面的css链接,何不换一个思路,为什么非要盯住是rel=stylesheet 的呢? 直接匹配link里面的href部分含有.css后缀的链接不也一样可以得到css链接么?
邱嵩松 2015-02-21
  • 打赏
  • 举报
回复
<% qsshtml = "<link href='a.css' type=text/css rel=stylesheet> <link type=text/css href='a.css' rel=stylesheet> <link type=text/css rel=stylesheet href='a.css' >" response.Write("--开始匹配2!<br>") response.flush dim resultcss,cssname,cssfromurl,resultcsshtml,cssinurl dim re2,m2,n2 set re2 = new regexp re2.ignorecase=true re2.global=true re2.pattern="<link (?=[^<>]*stylesheet)[^<>]*href=[^<>]*>" '获取CSS内的图片 set m2 = re2.execute(qsshtml) for each n2 in m2 resultcss = n2.submatches(0) response.Write("-发现css:"&resultcss&"<br>") next set m2 = nothing set re2 = nothing %>
天际的海浪 2015-02-20
  • 打赏
  • 举报
回复
引用 3 楼 qiuss 的回复:
[quote=引用 2 楼 jslang 的回复:] <link (?=[^<>]*stylesheet)[^<>]*href=[^<>]*>
经测试 这个不行呢 提示 无效的过程调用或参数 获取不到 需要写ASP用的规则 调出CSS文件地址 就是href=后边的[/quote] 正则表达式的规则在所有语言中都一样。不同的是各自语言有不同的正则对象使用方法。 提示 无效的过程调用或参数,这明显是使用方法不对 你把代码发出来看看
孟子E章 2015-02-20
  • 打赏
  • 举报
回复
你要怎么样,把你的代码贴出来
邱嵩松 2015-02-20
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
你把rel="dns-prefetch" 也加上啊。采用or的方法
希望用正则一步到位,先获取,再ASP判断 效率就低了
邱嵩松 2015-02-20
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
<link (?=[^<>]*stylesheet)[^<>]*href=[^<>]*>
经测试 这个不行呢 提示 无效的过程调用或参数 获取不到 需要写ASP用的规则 调出CSS文件地址 就是href=后边的
天际的海浪 2015-02-19
  • 打赏
  • 举报
回复
<link (?=[^<>]*stylesheet)[^<>]*href=[^<>]*>
孟子E章 2015-02-19
  • 打赏
  • 举报
回复
你把rel="dns-prefetch" 也加上啊。采用or的方法

28,376

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧