zoukankan      html  css  js  c++  java
  • 正则表达式提取网址、标题、图片等一例(.Net Asp Javascript/Js)的实现

    在一些抓取、过滤等情况下, 正则表达式 regular expression 的优势是很明显的。
    例如,有如下的字符串:
    复制代码 代码如下:

    <li><a href="http://www.abcxyz.com/something/article/143.htm" title="FCKEditor高亮代码插件测试"><span class="article-date">[09/11]</span>FCKEditor高亮代码插件测试</a>& lt;/li>

    现在,需要提取 href 后面的网址,[]内的日期,和 链接的文字。
    下面给出C#, ASP 和 Javascript 的实现方式
    C#的实现
    string strHTML = "<li><a \"href=http://www.abcxyz.com/something/article/143.htm\" title=\"FCKEditor高亮代码插件测试\"><span class=\"article-date\">[09/11]</span>FCKEditor高亮代码插件测试</a& gt;</li>";
    string pattern = "http://([^\\s]+)\".+?span.+?\\[(.+?)\\].+?>(.+?)<";
    Regex reg = new Regex( pattern, RegexOptions.IgnoreCase );
    MatchCollection mc = reg.Matches( strHTML );
    if (mc.Count > 0)
    {
    foreach (Match m in mc)
    {
    Console.WriteLine( m.Groups[1].Value );
    Console.WriteLine( m.Groups[2].Value );
    Console.WriteLine( m.Groups[3].Value );
    }
    }

    ASP的实现
    <%
    Dim str, reg, objMatches
    str = "<li><a href=""http://localhost/Z-Blog18/article/143.htm"" title=""FCKEditor高亮代码插件测试""><span class=""article-date"">[09/11]</span>FCKEditor高亮代码插件测试</a& gt;</li>"
    Set reg = new RegExp
    reg.IgnoreCase = True
    reg.Global = True
    reg.Pattern = "http://([^\s]+)"".+?span.+?\[(.+?)\].+?>(.+?)<"
    Set objMatches = reg.Execute(str)
    If objMatches.Count > 0 Then
    Response.Write("网址:")
    Response.Write(objMatches(0).SubMatches(0))
    Response.Write("<br>")
    Response.Write("日期:")
    Response.Write(objMatches(0).SubMatches(1))
    Response.Write("<br>")
    Response.Write("标题:")
    Response.Write(objMatches(0).SubMatches(2))
    End If
    %>

    Javascript的实现
    <script type="text/javascript">
    var str = '<li><a href="http://localhost/Z-Blog18/article/143.htm" title="FCKEditor高亮代码插件测试"><span class="article-date">[09/11]</span>FCKEditor高亮代码插件测试</a>& lt;/li>';
    var pattern = /http:\/\/([^\s]+)".+?span.+?\[(.+?)\].+?>(.+?)</gi;
    var mts = pattern.exec(str);
    if (mts != null)
    {
    alert(mts[1]);
    alert(mts[2]);
    alert(mts[3]);
    alert(mts[4]);
    }
    </script>
  • 相关阅读:
    音箱摆放
    SQL Server数据库开发的二十一条军规
    一年级程序员读《应用框架的设计与实现--.NET平台》
    JavaScript调用现成Word模板完成打印
    Asp.net下C#调用Word模版实例
    Android线程池
    Windows系统编程之异步I/O和完成端口 [北极星2003 看雪论坛]
    [转]异步IO、APC、IO完成端口、线程池与高性能服务器
    [转]Windows 内核(WRK)简介
    [转]IOCPSocket IO模型终结篇
  • 原文地址:https://www.cnblogs.com/top5/p/1601992.html
Copyright © 2011-2022 走看看