沉冰浮水

置百丈玄冰而崩裂,掷须臾池水而漂摇。

« 超萌小猫求包养,同步配音端午节经典冷笑话10则 »

备忘 - ASP正则提取img及src

  在ASP中用正则表达式提取img标签及其src属性值,话说代码的话还是加下高亮比较好看。。囧啊囧提供的一个在线工具:http://fayaa.com/code/new/,话说ASP好像没有的。。用了相近的vb.net。。。(╯▽╰)

<%
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=""http://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方法,,明天再补吧。。

订阅是个好习惯--http://feed.wdssmq.com--

  • 相关文章:
  • quote 1.Kada
  • http://kada.cc
  • 正则表达式这些东西确实需要备忘,记着太累了。
    沉冰浮水 于 2011/6/3 9:11:28 回复
    嗯嗯。第一次看时各种头大。。看了几遍后总算入门了。。
    ----------
    置百丈玄冰而崩裂,掷须臾池水而漂摇。
  • 2011/6/3 9:03:36  回复该留言  返回顶部

发表评论:

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

日历

站内搜索

文章分类

最近发表

订阅本站


订阅本站

评论排行

GGAds

图标汇集

▲返回顶部

© 沉冰浮水 | 站点地图 | | 广告投放 | 联系博主 |
Powered By Z-Blog | Themeby BokeZhuti