正則表達(dá)式提取網(wǎng)址、標(biāo)題、圖片等一例(.Net Asp Javascript/Js)的實(shí)現(xiàn)
更新時(shí)間:2008年11月08日 19:01:06 作者:
用各種語(yǔ)言實(shí)現(xiàn)的提取內(nèi)容中的網(wǎng)址,標(biāo)題,圖片等功能代碼,對(duì)于大家掌握正則的共用性有很大的幫助。
在一些抓取、過(guò)濾等情況下, 正則表達(dá)式 regular expression 的優(yōu)勢(shì)是很明顯的。
例如,有如下的字符串:
<li><a title="FCKEditor高亮代碼插件測(cè)試"><span class="article-date">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</a></li>
現(xiàn)在,需要提取 href 后面的網(wǎng)址,[]內(nèi)的日期,和 鏈接的文字。
下面給出C#, ASP 和 Javascript 的實(shí)現(xiàn)方式
C#的實(shí)現(xiàn)
string strHTML = "<li><a \"href=http://www.abcxyz.com/something/article/143.htm\" title=\"FCKEditor高亮代碼插件測(cè)試\"><span class=\"article-date\">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</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的實(shí)現(xiàn)
<%
Dim str, reg, objMatches
str = "<li><a href=""http://localhost/Z-Blog18/article/143.htm"" title=""FCKEditor高亮代碼插件測(cè)試""><span class=""article-date"">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</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("網(wǎng)址:")
Response.Write(objMatches(0).SubMatches(0))
Response.Write("<br>")
Response.Write("日期:")
Response.Write(objMatches(0).SubMatches(1))
Response.Write("<br>")
Response.Write("標(biāo)題:")
Response.Write(objMatches(0).SubMatches(2))
End If
%>
Javascript的實(shí)現(xiàn)
<script type="text/javascript">
var str = '<li><a href="http://localhost/Z-Blog18/article/143.htm" title="FCKEditor高亮代碼插件測(cè)試"><span class="article-date">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</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>
例如,有如下的字符串:
復(fù)制代碼 代碼如下:
<li><a title="FCKEditor高亮代碼插件測(cè)試"><span class="article-date">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</a></li>
現(xiàn)在,需要提取 href 后面的網(wǎng)址,[]內(nèi)的日期,和 鏈接的文字。
下面給出C#, ASP 和 Javascript 的實(shí)現(xiàn)方式
C#的實(shí)現(xiàn)
復(fù)制代碼 代碼如下:
string strHTML = "<li><a \"href=http://www.abcxyz.com/something/article/143.htm\" title=\"FCKEditor高亮代碼插件測(cè)試\"><span class=\"article-date\">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</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的實(shí)現(xiàn)
復(fù)制代碼 代碼如下:
<%
Dim str, reg, objMatches
str = "<li><a href=""http://localhost/Z-Blog18/article/143.htm"" title=""FCKEditor高亮代碼插件測(cè)試""><span class=""article-date"">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</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("網(wǎng)址:")
Response.Write(objMatches(0).SubMatches(0))
Response.Write("<br>")
Response.Write("日期:")
Response.Write(objMatches(0).SubMatches(1))
Response.Write("<br>")
Response.Write("標(biāo)題:")
Response.Write(objMatches(0).SubMatches(2))
End If
%>
Javascript的實(shí)現(xiàn)
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var str = '<li><a href="http://localhost/Z-Blog18/article/143.htm" title="FCKEditor高亮代碼插件測(cè)試"><span class="article-date">[09/11]</span>FCKEditor高亮代碼插件測(cè)試</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>
您可能感興趣的文章:
- javascript 手機(jī)號(hào)碼正則表達(dá)式驗(yàn)證函數(shù)
- 比較正宗的驗(yàn)證郵箱的正則表達(dá)式j(luò)s代碼詳解
- JS正則表達(dá)式大全(整理詳細(xì)且實(shí)用)
- js正則表達(dá)式的使用詳解
- 精通JS正則表達(dá)式(推薦)
- js中過(guò)濾特殊字符的正則表達(dá)式
- js 正則表達(dá)式之test函數(shù)講解
- 實(shí)用的JS正則表達(dá)式(手機(jī)號(hào)碼/IP正則/郵編正則/電話等)
- JavaScript 表單驗(yàn)證正則表達(dá)式大全[推薦]
- JS只能輸入數(shù)字或數(shù)字和字母等的正則表達(dá)式
- js:日期正則表達(dá)式及檢測(cè)
- JS經(jīng)典正則表達(dá)式筆試題匯總
相關(guān)文章
幾個(gè)小例子教你如何實(shí)現(xiàn)正則表達(dá)式highlight高亮
正則表達(dá)式,用起來(lái)還是挺方便的。正則技能,你值得擁有??!2014-05-05php驗(yàn)證用戶名是否以字母開(kāi)頭與驗(yàn)證密碼實(shí)例
這篇文章主要介紹了php驗(yàn)證用戶名是否以字母開(kāi)頭與驗(yàn)證密碼,實(shí)例匯總了幾個(gè)用戶注冊(cè)及提交表單時(shí)常用的正則表達(dá)式,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12史上最全的PHP正則表達(dá)式(手機(jī)號(hào)需要加上177-***)
正則表達(dá)式,大家在開(kāi)發(fā)中應(yīng)該是經(jīng)常用到,現(xiàn)在很多開(kāi)發(fā)語(yǔ)言都有正則表達(dá)式的應(yīng)用,比如javascript,java,.net,php等等,今天給大家介紹史上最全的PHP正則表達(dá)式(手機(jī)號(hào)需要加上177-***),一起看看吧2017-10-10一個(gè)容易犯錯(cuò)的js手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式(推薦)
這篇文章主要介紹了 一個(gè)容易犯錯(cuò)的js手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式(推薦),需要的朋友可以參考下2017-03-03正則表達(dá)式實(shí)現(xiàn)字符的模糊匹配功能示例
這篇文章主要介紹了正則表達(dá)式實(shí)現(xiàn)字符的模糊匹配功能,結(jié)合具體java實(shí)例形式分析了針對(duì)字符串的模糊匹配查詢相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-05-05簡(jiǎn)單的用js實(shí)現(xiàn)過(guò)濾多余字符的正則表達(dá)式
利用正則表達(dá)法除去字符串中的重復(fù)字符,一個(gè)簡(jiǎn)單的JavaScript正則表達(dá)式實(shí)例,將一串含有重復(fù)字符串中的多余字符濾除掉,請(qǐng)運(yùn)行查看效果。2010-10-10