在正規表示式中前後查詢是經常用到的,例如要提取某一對標籤內的文字卻又不包含此標籤就可以通過正規表示式的前後查詢來實現。
1、向前查詢
向前查詢制定了乙個必須匹配但不在結果中的返回模式,實際上就是乙個以?=開頭的子表示式,需要匹配的文字跟在= 的後面,在同乙個搜尋模式裡可以使用多個向前查詢表示式,它們可以出現在模式的任何位置,例如原始的文字是一些url位址,需要提取這些url位址的協議部分,通過向前查詢能夠輕鬆搞定:
var url = " " +
" " +
""console.log(url.match(/\w+(?=:)/g));
輸出的結果為:["http", "https", "http"],通過例子可以看出向前查詢的實際效果就是以某個文字結束返回的結果中卻不包含該匹配文字。
2、向後查詢
向前查詢操作符是?=,向後查詢的的操作符是?<=,兩者的用法差不多,都是作為乙個子表示式,而且後面要跟匹配的文字,例如要提取原始文字中的金額:
var jg = "iphone:$88.88 " +
"oppo: $10.23" +
"honor:$25.56";
console.log(jg.match(/(?<=\$)[0-9.]+/g))
輸出的結果為:["88.88", "10.23", "25.56"],通過例子可以看出向後查詢的實際效果是以某個匹配的文字開始返回的結果中不包含該匹配文字。
前後查詢也是有取非操作的:
操作符說明
(?=)
正向前查詢
(?!)
負向前查詢
(?<=)
正向後查詢
(?負向後查詢
正規表示式學習筆記 6 向前查詢和向後查詢
六 向前查詢和向後查詢 1.向前查詢 根據要匹配的字串行後面存在乙個特定的字串行 肯定式向前查詢 或不存在乙個特定的序列 否定式向前查詢 來決定是否匹配。net將向前查詢稱之為零寬度向前查詢斷言。對於向前查詢,出現在指定項之後的字串行不會被正規表示式引擎返回。2.向後查詢 乙個要匹配的字串行前面有或...
正規表示式中的向後引用
正規表示式乙個最重要的特性就是將匹配成功的模式的某部分進行儲存供以後使用這一能力。請回想一下,對乙個正規表示式模式或部分模式兩邊新增圓括號將導致這部分表示式儲存到乙個臨時緩衝區中。可以使用非捕獲元字元 or 來忽略對這部分正規表示式的儲存。所捕獲的每個子匹配都按照在正規表示式模式中從左至右所遇到的內...
正規表示式概述 什麼是正規表示式
正規表示式概述 正規表示式在程式語言中存在著廣泛的應用,特別是用來處理字串。如匹配字串 查詢字串 替換字串等。可以說,正規表示式是一段文字或乙個公式,它是用來描述用某種模式去匹配一類字串的公式,並且該公式具有一定的模式。本小節將介紹正規表示式的基本概念 第乙個正規表示式,以及測試正規表示式的工具co...