js正則表達式截取字符串開頭、結尾、以及兩字符串之間的內容


js正則表達式截取字符串

 

1.正則表達式寫法簡介

var expression = / pattern /flags;
其中模式(pattern)部分可以是任何簡單或復雜的正則表達式,每個正則表達式都帶有一個或多個標簽(flags)用以標明正則表達式的行為
 

var strMatch = `-rw-r--r--. 1 root root   114769 Apr 26 15:39 CN_CM_SHANGHAI_24709063_M.mtl
                -rw-r--r--. 1 root root 2879642 Apr 26 15:39 CN_CM_SHANGHAI_2470190623_Q.obj`;
2.截取字符串中以CN_開頭.mtl結尾的部分(包含開頭和結尾)

var matchReg = /CN_.*?\.mtl/gi;
console.log(strMatch.match(matchReg));//輸出 CN_CM_SHANGHAI_24709063_M.mtl
這里

.表示除換行符\n之外的任意字符

*匹配前面的子表達式0次或多次

 

?匹配前面的子表達式零次或一次,或指明一個非貪婪限定符

\.是匹配.

g全局匹配

i不區分大小寫

3.截取字符串以CN_開頭,以.mtl之前的內容結尾

var matchReg = /CN_.*?(?=.mtl)/gi;
console.log(strMatch.match(matchReg));//輸出CN_CM_SHANGHAI_24709063_M
(?=.mtl) 表示以.mtl結尾的前面字符串,不包含.mtl

4.截取字符串CN_和.mtl之間的內容(不包含CN_和.mtl)

var matchReg = /(?<=CN_).*?(?=.mtl)/;
console.log(strMatch.match(matchReg));//輸出 CM_SHANGHAI_24709063_M
 

(?<=CN_)表示獲取CN_之后的字符串。不包含CN_

 

5.同理,獲得CN_之后(不包括CN_), .mtl之前的。(包括.mtl)的字符串方法

var matchReg = /(?<=CN_).*?\.mtl/;
console.log(strMatch.match(matchReg));//輸出 CM_SHANGHAI_24709063_M.mtl
6.輸出以CN_開頭,.mtl或者.obj結尾的字符串

var matchReg = /CN_.*?(.mtl|.obj)/;
console.log(strMatch.match(matchReg));//輸出 CN_CM_SHANGHAI_24709063_M.mtl和CN_CM_SHANGHAI_2470190623_Q.obj
7.輸出以CN_開頭,以.mtl或者.obj結尾之前的內容

var matchReg = /CN_.*?(?=(.mtl|.obj))/;
console.log(strMatch.match(matchReg));//輸出 CN_CM_SHANGHAI_24709063_M和CN_CM_SHANGHAI_2470190623_Q


免責聲明!

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



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