国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

15.15.如何使用逆向引用?

2024-04-27 13:52:21
字體:
供稿:網(wǎng)友
15.15.1 問題
有些情況下, 如果你想對一個模式進行匹配及根據(jù)這個結(jié)果來找出下一個可能匹配之處。舉例說, 對HTML 標簽進行匹配的話, 應怎么辦呢?
15.15.2 解答
可以在正則表達式中加入逆向引用來檢查最近的匹配結(jié)果。
15.15.3 討論
在Flash Player 的正則表達式處理引擎中, 逆向引用的結(jié)果會以一個列表的形式儲存,最多可以儲存達99 個的相配結(jié)果。在其中, “/1”表示最近的匹配結(jié)果, 而”/2”則表示前一個結(jié)果。同樣地, 在String 類中有個叫replace 的方法, 是用來對其他的正則表達式進行匹配的。在這里,最近的匹配結(jié)果會以”$1”來表示。

為了確保每對的HTML 標簽都會被匹配(例如: <h2>和</h2>), 以下的例子使了”/1”這個逆向引用標記來返回最近的結(jié)果:
代碼如下:
+展開
-ActionScript
private var headerBackreference:RegExp = /<H([1-6])>.*?<//H/1>/g;
private function init():void {
var s:String = "<BODY> <H2>Valid Chocolate</H2> <H2>Valid
Vanilla</H2> <H2>This is not valid HTML</H3></BODY>";
var a:Array = s.match(headerBackreference);
if(a != null) {
for(var i:int = 0; i<a.length; i++) {
trace(a[i]);
}
}
}

此外, 你也可以使用逆向引用來為有效的URL 地址加入”<a>”卷標以創(chuàng)建一個超鏈接。這種逆向引用的表示方法跟之前的會有一點點分別。我們會通過以下的代碼及分析來理解它們的分別:
代碼如下:
+展開
-ActionScript
private var domainName:RegExp = /(ftp|http|https|file):////[/S]+(/b|$)/gim;
private function matchDomain():void {
var s:String = "Hello my domain is http://www.bar.com, but I a lso like http://foo.net as well as www.baz.org";
var replacedString = (s.replace(domainName, '<a href="$&">$&</a>').replace(/([^//])(www[/S]+(/b|$))/gim, '$1<a href="http://$2">$2</a>'));
}

首先對有效的URL 地址進行匹配:
/(ftp|http|https|file):////[/S]+(/b|$)/gim;
接受, 把這些有效的URL 地址嵌入”<a>”標記中間:
+展開
-ActionScript
s.replace(domainName, '<a href="$&">$&</a>')

最后, 你會得出以下結(jié)果:
代碼如下:
Hello my domain is <a href="http://www.bar.com">http://www.bar.com</a>, but I also like <a href="http://foo.net">http://foo.net</a> as well as www.baz.org
顯然地, 這個結(jié)果并不合乎理想。在原先的RegExp 中, 只有那些以ftp, http, https 或file 開頭的字符串才會被匹配, 而www.baz.org 這個字符串則不合乎條件。以下的replace 語句會在所有匹配結(jié)果中, 尋找那些包含”www”但沒有”/”號在它跟前的字符串。
+展開
-ActionScript
replace(/([^//])(www[/S]+(/b|$))/gim,'$1<a href="http://$2">$2</a>'))

“$1”及”$2”表示第一及第二個匹配結(jié)果, 而在這里第二個結(jié)果正是我們所需要的URL 名字。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 依安县| 淮北市| 麟游县| 若羌县| 和静县| 汉源县| 佛冈县| 卓尼县| 泰宁县| 望奎县| 龙南县| 渝北区| 桂林市| 吉安县| 广平县| 宁安市| 双柏县| 阿荣旗| 瑞丽市| 武夷山市| 桃源县| 裕民县| 全椒县| 恩施市| 常德市| 越西县| 安远县| 潮安县| 兴宁市| 郓城县| 淮北市| 五大连池市| 广南县| 乐至县| 南投县| 临泽县| 扬州市| 湘潭县| 射洪县| 上高县| 沐川县|