正則表達式斷言(Assertions)


 

一 零寬正向先行斷言

 

x(?=y)  僅匹配被y跟隨的x。

 

const regExp = /Jack(?=Sparrow|Dawson)/g;
const str = 'JackJones JackSparrow JackDawson';
let result;
while((result = regExp.exec(str))!=null){
    console.log(result);
}

 

 

二 零寬度負向先行斷言

 

x(?!y)  僅匹配不被y跟隨的x。

 

const regExp = /Jack(?!Sparrow)/g;
const str = 'JackJones JackSparrow JackDawson';
let result;
while((result = regExp.exec(str))!=null){
    console.log(result);
}

 

 

三 零寬度正向回顧斷言

 

(?<=y)x  x只有在y后面才匹配

 

const regExp = /(?<=BMW)\sX5/g;
const str = 'vivo X5 BMW X5 LandWind X5';
let result;
while((result = regExp.exec(str))!=null){
    console.log(result);
}

 

 

四 零寬度負向回顧斷言

 

(?<!y)x  x只有不在y后面才匹配

 

const regExp = /(?<!BMW)\sX5/g;
const str = 'vivo X5 BMW X5 LandWind X5';
let result;
while((result = regExp.exec(str))!=null){
    console.log(result);
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM