在一些抓取、過濾等情況下, 正則表達式 regular expression 的優(yōu)勢是很明顯的。
例如,有如下的字符串:
復(fù)制代碼 代碼如下:
li>a title="FCKEditor高亮代碼插件測試">span class="article-date">[09/11]/span>FCKEditor高亮代碼插件測試/a>/li>
現(xiàn)在,需要提取 href 后面的網(wǎng)址,[]內(nèi)的日期,和 鏈接的文字。
下面給出C#, ASP 和 Javascript 的實現(xiàn)方式
C#的實現(xiàn)
復(fù)制代碼 代碼如下:
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的實現(xiàn)
復(fù)制代碼 代碼如下:
%
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("網(wǎng)址:")
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的實現(xiàn)
復(fù)制代碼 代碼如下:
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>
您可能感興趣的文章:- javascript 手機號碼正則表達式驗證函數(shù)
- 比較正宗的驗證郵箱的正則表達式j(luò)s代碼詳解
- JS正則表達式大全(整理詳細且實用)
- js正則表達式的使用詳解
- 精通JS正則表達式(推薦)
- js中過濾特殊字符的正則表達式
- js 正則表達式之test函數(shù)講解
- 實用的JS正則表達式(手機號碼/IP正則/郵編正則/電話等)
- JavaScript 表單驗證正則表達式大全[推薦]
- JS只能輸入數(shù)字或數(shù)字和字母等的正則表達式
- js:日期正則表達式及檢測
- JS經(jīng)典正則表達式筆試題匯總