好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

正则表达式提取网址、标题、图片等一例(.Net

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

复制代码 代码如下:

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

查看更多关于正则表达式提取网址、标题、图片等一例(.Net的详细内容...

  阅读:84次