正則非捕獲分組匹配--零寬斷言

非捕獲分組

非捕獲分組:匹配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/
複製代碼

友情連接:

juejin.im/post/5cdcd4…

www.cnblogs.com/shangdawei/…

相關文章
相關標籤/搜索