源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 745|回复: 47

[正则表达式] 正则表达式提取网址、标题、图片等一例(.Net Asp Javascript/Js)的实现

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2008-11-8 19:01:06 | 显示全部楼层 |阅读模式
用各种语言实现的提取内容中的网址,标题,图片等功能代码,对于大家掌握正则的共用性有很大的帮助。 在一些抓取、过滤等情况下, 正则表达式 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>
回复

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-20 17:29:35 | 显示全部楼层
借款金额看了就立刻
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2023-1-17 10:43:18 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

匿名  发表于 2023-1-17 12:08:04

generic viagra price

viagra price
<a href="https://vidolikgra.com/">viagra price per pill</a>
回复 支持 反对

使用道具

匿名  发表于 2023-1-17 12:08:33

cheapest generic viagra


click here
<a href="https://vidolikgra.com/">cheap sildenafil</a>
回复 支持 反对

使用道具

匿名  发表于 2023-1-17 12:09:46

viagra online


cheap sildenafil
<a href="https://vidolikgra.com/">cheapest viagra</a>
回复 支持 反对

使用道具

匿名  发表于 2023-1-17 12:10:15

sildenafil online usa

sildenafil 100mg
<a href="https://vidolikgra.com/">viagra price comparison</a>
回复 支持 反对

使用道具

匿名  发表于 2023-1-17 12:10:50

200 mg sildenafil citrate


viagra 100mg cost
<a href="https://vidolikgra.com/">sildenafil prescription</a>
回复 支持 反对

使用道具

匿名  发表于 2023-1-17 12:11:24

sildenafil online canada


brand viagra
<a href="https://vidolikgra.com/">viagra without a doctor prescription usa</a>
回复 支持 反对

使用道具

匿名  发表于 2023-1-17 12:11:54

levitra or viagra


buy sildenafil
<a href="https://vidolikgra.com/">sildenafil price</a>
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 20:45 , Processed in 0.090105 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表