主頁(yè) > 知識(shí)庫(kù) > 正則表達(dá)式中的反向預(yù)搜索(下)

正則表達(dá)式中的反向預(yù)搜索(下)

熱門(mén)標(biāo)簽:惠安地圖標(biāo)注 地圖標(biāo)注店鋪地圖標(biāo)注酒店 淄博市張店區(qū)地圖標(biāo)注 自己做的電銷(xiāo)機(jī)器人 浙江營(yíng)銷(xiāo)外呼系統(tǒng)有哪些 遼寧秒客來(lái)電話機(jī)器人 上海銷(xiāo)售電銷(xiāo)機(jī)器人軟件 山東外呼系統(tǒng)聯(lián)系方式 哈爾濱公司外呼系統(tǒng)代理

代碼為:

復(fù)制代碼 代碼如下:

//程序目的,去掉圖片路徑中的域名
var str = 'img src="https://www.jb51.net/images/logo.gif">';
var reg1 = /(\img)(.*(?=(http|https)\:\/\/))((http|https)\:\/\/[^\/]*)/gim;
str.match(reg1);
alert(str.replace(RegExp.$4,'');

這個(gè)用法在字符串中只有一個(gè)URL時(shí),是適用的,但是如果字符串中包含多個(gè)域名,例如:
復(fù)制代碼 代碼如下:

var str = 'img src="https://www.jb51.net/images/logo.gif">腳本之家首頁(yè)的a ;

程序運(yùn)行后去掉的內(nèi)容就是第二個(gè)域名即https://www.jb51.net。這是為什么呢?

仔細(xì)查看正則表達(dá)式會(huì)發(fā)現(xiàn),在使用"(\img) "匹配了img之后,使用“.*”匹配所有字符直到“http://”或者“https://”。請(qǐng)注意,正是“.*”導(dǎo)致了這個(gè)問(wèn)題的出現(xiàn),這里的“.*”就是說(shuō),一直查找和匹配,盡可能的多匹配,直到最后一個(gè)限定符,也就是說(shuō)術(shù)語(yǔ)中的貪婪(greedy)匹配。很自然,就想到了使用非貪婪的匹配解決這個(gè)問(wèn)題。把正在表達(dá)式改為:
復(fù)制代碼 代碼如下:

//與貪婪匹配的差別就是多了一個(gè)問(wèn)號(hào)“?”,貪婪".*",非貪婪".*?"
var reg1 = /(\img)(.*?(?=(http|https)\:\/\/))((http|https)\:\/\/[^\/]*)/gim;

解決問(wèn)題的方法很簡(jiǎn)單,但是也說(shuō)明平時(shí)工作存在的一個(gè)重要問(wèn)題:程序測(cè)試不充分。

標(biāo)簽:無(wú)錫 長(zhǎng)沙 宣城 綿陽(yáng) 重慶 銅川 西安 泰州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式中的反向預(yù)搜索(下)》,本文關(guān)鍵詞  正則,表達(dá)式,中的,反向,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《正則表達(dá)式中的反向預(yù)搜索(下)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于正則表達(dá)式中的反向預(yù)搜索(下)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章