正規表示式中的反向預搜尋 下

2022-10-08 03:36:10 字數 627 閱讀 8461

**為:

複製** **如下:

//程式目的,去掉路徑中的網域名稱

var str = '

'; var reg1www.cppcns.com = /(\

str.match(reg1);

alert(str.replace(regexp.$4,'');

這個用法在字串中只有乙個url時,是適用的,但是如果字串中包含多個網域名稱,例如:

複製** **如下:

var str = '

我們首頁的鏈結';

程式執行後去掉的內容就是第二個網域名稱即這是為什麼呢?

仔細檢視正規表示式會發現,在使用"(\

配了exubgzc直到最後乙個限定符,也就是說術語中的貪婪(greedy)匹配。很自然,就想到了使用非貪婪的匹配解決這個問題。把正在表示式改為:

複製** **如下:

//與貪婪匹配的差別就是多了乙個問號「?」,貪婪".*",非貪婪".*?"

var reg1 = /(\

解決問題的方法很簡單,但是也說明平時工作存在的乙個重程式設計客棧要問題:程式測試不充分。

本文標題: 正規表示式中的反向預搜尋(下)

本文位址: /wangluo/re/53690.html

表示式反向解析 正規表示式 反向引用

分組不僅用在匹配結果中,也可以在匹配的正規表示式中使用分組匹配的結果,這種功能稱為反向引用 backreference 當待匹配的字串中有些子字串出現多次的話,正規表示式模式可以將第乙個出現的子字串儲存在分組中,在模式的後面可以直接引用第乙個匹配的結果。因為分組即可通過索引也可以通過名字來訪問,所以...

正規表示式之正向預查和反向預查

正向預查 1.正向正預查 例如 foo bar 匹配後面帶有bar的foo 它可以匹配 foobar,abcfoobar 中的foo 但是不能匹配 fooabc 中的foo 2.正向負預查 例如 foo bar 匹配後面不帶bar的foo 它可以匹配 foo123 但是不能匹配 foobar 負向預...

正規表示式中的反向引用

反向引用 nnn 對指定分組已捕獲的字串進行引用,對當前匹配的字串,引用指定分組捕獲到的字串,主要用於文字的替換。說明deelx 支援的反向引用格式 反向引用 說明 nnn 對指定編號的分組進行反向引用 g對指定名字的命名分組進行反向引用 k k name 另外,如果被引用的捕獲組 括號對 未進行捕...