非捕獲分組:匹配regex但不獲取匹配結果,不進行存儲供之後使用,避免浪費內存html
(?:regex)bash
匹配到regex後,不獲取匹配結果app
/(?:\d)(.*?)(?:[a-z])/ //匹配中間分組
複製代碼
向前查找(?=regex)post
以regex做爲限制項進行匹配,匹配到這個子表達式後,就會繼續向前查找(匹配以regex結尾的單詞的前面部分(除了regex之外的部分))spa
//匹配的是HTML標籤內裏的內容(再次提醒,不包括前綴和後綴自己)
/(?<=<(\w+)>).*(?=<\/\1>)/
/(?<=<(\w+)>)/ //匹配以<word字符>開頭的
/(?=<\/\1>)/ //匹配以</word字符>結尾的
複製代碼
負前向查找(?!regex)code
以regex做爲限制,向前查找,被指定的子表達式不能被匹配到(匹配不以regex結尾的單詞的前面部分,或者不包含匹配regex的單詞)htm
例如:
/\d{3}(?![a-z])/ 匹配後面不是小寫字母的三位數字; //匹配不以小寫字母結尾的字符串的前面部分
/\b((?!abc)\w)+\b/ 匹配不包含連續字符串abc的單詞。
/^(?!.*diversity)/ 匹配不包含連續字符串diversity的字符串
複製代碼
先後查找(?<=regex)blog
以regex做爲限制項進行匹配,匹配到這個子表達式後,就會繼續向後查找(匹配以regex開頭的單詞的後面部分(除了regex之外的部分))內存
負先後查找(?<!regex)字符串
以regex做爲限制,向後查找,被指定的子表達式不能被匹配到(匹配不以regex開頭的單詞的後面部分,或者不包含匹配regex開頭的單詞)
【注意】:只能寫在前面限制後面,向後查找,若是後面沒有查找內容,則沒有限制
例如:
/(?<![a-z])\d{7}/ 匹配前面不是小寫字母的七位數字。//匹配不以小寫字母開頭的字符串的後面部分
var str = 'apple people';
只想找到apple的ple,匹配以ap開頭的ple
/(?<=ap)ple/ 或者 /(?<!peo)ple/
複製代碼
友情連接: