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

首頁 > 網站 > WEB開發 > 正文

15.15.如何使用逆向引用?

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

為了確保每對的HTML 標簽都會被匹配(例如: <h2>和</h2>), 以下的例子使了”/1”這個逆向引用標記來返回最近的結果:
代碼如下:
+展開
-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>”卷標以創建一個超鏈接。這種逆向引用的表示方法跟之前的會有一點點分別。我們會通過以下的代碼及分析來理解它們的分別:
代碼如下:
+展開
-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>')

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

“$1”及”$2”表示第一及第二個匹配結果, 而在這里第二個結果正是我們所需要的URL 名字。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海阳市| 石狮市| 无极县| 夏津县| 孙吴县| 柳江县| 民丰县| 七台河市| 长春市| 晴隆县| 甘肃省| 徐汇区| 松溪县| 来安县| 定南县| 顺昌县| 泾源县| 北碚区| 门源| 大姚县| 裕民县| 弥勒县| 法库县| 台江县| 汤原县| 阆中市| 延庆县| 大英县| 历史| 金川县| 隆子县| 定州市| 馆陶县| 塔城市| 英山县| 蓬莱市| 九寨沟县| 信丰县| 浪卡子县| 乐陵市| 台南县|