【备忘】ASP正则提取img及src

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq

在ASP中用正则表达式提取img标签及其src属性值,然而如果你进到了这里。。强烈建议换PHP吧

<%
Function RegImg(TheStr)
    Dim RegEx
    Set RegEx = New RegExp '建立正则表达对象。
    RegEx.IgnoreCase =True ' 是否区分大小写,True为不区分且默认
    RegEx.Global = True '全部匹配还是只匹配第一个
    RegEx.Pattern = "<img[^>]*src\s*=\s*['"&CHR(34)&"]?([\w/\-\:.]*)['"&CHR(34)&"]?[^>]*>" ' 搜索所使用的正则表达式
    If Regex.test(TheStr) Then ' 判断是否有匹配值,返回True或者False。不受Global属性影响。
        Dim Matches
        Set Matches = RegEx.Execute(TheStr) ' 执行搜索。Execute 方法返回一个Matches 集合,其中包含了在 TheStr 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。
        For Each Match in Matches ' 遍历匹配集合。
        RetStr = RetStr & Match.Value & "<br />" '获取整个img
        RetStr = RetStr & Match.SubMatches(0) '只取src
        Next
        RegImg = RetStr
    End If          
End Function
Response.Write RegImg("<p><img src=""https://www.wdssmq.com/UPLOAD/cbfs.gif"" width=""132"" height=""132"" alt=""111"" /></p>")
%>

说明:

由于单双引号在ASP中的用法,所以最终的正则表达式应该是:<img[^>]*src\s*=\s*['"]([\w/\-\:.]+)['"][^>]*>

以“<img”开头,后边跟着0或者任意数量不为“>”的字符,方括号表示一个字符集,"^"在方括号中表示对字符集的否定,“*”指匹配前一个字符或规则0或任意次;

然后是“src”跟着零或任意数量的空白字符,当然在本例中\s一般是为了匹配空格(此外还有制表符、分页符什么的);

等号就是匹配其本身;

之后是一个单引号或者一个双引号,与方括号中字符的其中之一匹配,同样加上“^”就是不为单引号且不为双引号的任意字符;

[\w/\-:.]+是图片地址的规则,\w与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_]",与之后的斜杠、反斜杠、连接符、冒号、点句构成一个字符集,判断引号后的字符是否属于这个字符集,"+"号表示判断前一规则一次或更多次,这里用“*”号也可以, 由于我们需要单独拿出这部分。。所以外边再加上圆括号,通过上边实例中的Match.SubMatches(0)读取

再次单引号或者双引号;

再次0或任意数量不为“>”的字符;

“>”号结束。

正则表达式30分钟入分教程:http://deerchao.net/tutorials/regex/regex.htm

RegExp对象还有一个replace方法,,明天再补吧。。


爱发电

本文标题:《【备忘】ASP正则提取img及src》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/BeiWang-ASPZhengZeTiQuimgJisrc.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

zsx zsx 发布于 2011-06-04 10:05:46  
留言网址默认屏蔽 临时查看 认领以解除屏蔽
RegExp.Replace(str,&quot;代号(如$1)&quot;)
好吧,[F]Sleep[/F]RegExBuilder软件不错
回复
zsx zsx 发布于 2011-06-04 10:04:58  
#cmt3382
RegExp.Replace(str,"")
回复
沉冰浮水 沉冰浮水 发布于 2011-06-03 09:11:28  
https://www.wdssmq.com
嗯嗯。第一次看时各种头大。。看了几遍后总算入门了。。
----------
置百丈玄冰而崩裂,掷须臾池水而漂摇。
回复
Kada Kada 发布于 2011-06-03 09:03:36  
#cmt3380
正则表达式这些东西确实需要备忘,记着太累了。
回复
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

  • 订阅本站的 RSS 2.0 新闻聚合

搜索

本周旧文

近期观影记录:超级马里奥,死侍与金刚狼。。

搬家也告一段落,虽然搬过来的东西还得归置,新衣柜虽说已经散俩月味儿了,但还是不想放衣服进去。

要不我每年汇总整理一次??碎雨集_沉冰浮水_第1页

所以,不带这条的话,2024 年目前只发了 13 条嘟????

VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点,一般都是推送或拉取,今天连提交都卡了。。

又一个夏天过去了,所以今年也没买防水鞋套;然后天凉了,为了应对踢被子买了睡袋,不知道 1.2 米会不会略窄。。

《五至七时的克莱奥》,2018 年 6 月加入列表,21 年 11 月底发现 B 站上线了这部,直到前几天才看完,还是分两次看的。。接下来有五项是 2019 年的,都是电影 —— 略长的待办列表。。

有用程序自动抓取自己带 tag 的嘟,然后按年备份后从线上删除;刚发现去年的数据有备份但是没删线上??和本地数据对比后发现线上的还少一条,Why??

本质上,每个人需要的是「让自己面临的问题得到解决」的能力。。

这又涉及到直接能力和间接能力,,缺乏直接能力很正常,视情况可以通过学习来掌握直接能力,或者「请」有直接能力的人来帮自己解决。。

缺乏间接能力的情况是真没救,尤其是对「这是**我自己**面临的问题」这一前提没有明确认知的人。。

其实,在认知意义上,焦虑时我知道这种情绪对应「焦虑」这个文法词汇,此外还有「压抑」「悲伤」等等,然而「抑郁」其实是个我认知体系外的词,虽然经常一些情绪感受我找不到对应的语言词汇来表述,却也只能将其实表述为「找不到对应的语言词汇来表述」的某些感受。。

爱发电支持者

最新留言

友情链接