校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 正則表達式中的反向預搜索(下)

正則表達式中的反向預搜索(下)

熱門標簽:惠安地圖標注 地圖標注店鋪地圖標注酒店 淄博市張店區地圖標注 自己做的電銷機器人 浙江營銷外呼系統有哪些 遼寧秒客來電話機器人 上海銷售電銷機器人軟件 山東外呼系統聯系方式 哈爾濱公司外呼系統代理

代碼為:

復制代碼 代碼如下:

//程序目的,去掉圖片路徑中的域名
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,'');

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

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

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

仔細查看正則表達式會發現,在使用"(\img) "匹配了img之后,使用“.*”匹配所有字符直到“http://”或者“https://”。請注意,正是“.*”導致了這個問題的出現,這里的“.*”就是說,一直查找和匹配,盡可能的多匹配,直到最后一個限定符,也就是說術語中的貪婪(greedy)匹配。很自然,就想到了使用非貪婪的匹配解決這個問題。把正在表達式改為:
復制代碼 代碼如下:

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

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

標簽:無錫 長沙 宣城 綿陽 重慶 銅川 西安 泰州

巨人網絡通訊聲明:本文標題《正則表達式中的反向預搜索(下)》,本文關鍵詞  正則,表達式,中的,反向,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式中的反向預搜索(下)》相關的同類信息!
  • 本頁收集關于正則表達式中的反向預搜索(下)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 柞水县| 三台县| 扬中市| 维西| 平定县| 海宁市| 永宁县| 榆中县| 江西省| 廉江市| 济南市| 新邵县| 台安县| 兴化市| 固原市| 大连市| 河北省| 扎赉特旗| 马鞍山市| 铅山县| 寻乌县| 江达县| 乌拉特后旗| 辽宁省| 安徽省| 咸宁市| 固镇县| 松原市| 凤庆县| 南康市| 桃源县| 思茅市| 文昌市| 永福县| 渝中区| 平泉县| 新巴尔虎左旗| 彭州市| 石楼县| 苍南县| 如皋市|