亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用正則表達(dá)式找出所有不包含某字符串的行

Nosee / 2565人閱讀

摘要:好處是用于斷言的字符串是一個(gè)表達(dá)式,通過可以寫任意多組字符串。該正則式斷言行尾之前的字符串不是。

之前寫 Webpack 配置的時(shí)候遇到這樣一個(gè)問題:

通過 /.(jpg|png|svg|gif|webp)$/ 判斷圖片文件,如果符合條件則將其儲(chǔ)存至 images 目錄下。
然而這樣做會(huì)把類似 fontawesome-webfont.svgglyphicons-halflings-regular.svg 這樣的字體文件也匹配進(jìn)去

這是一個(gè)強(qiáng)迫癥患者所不能接受的。那么問題來了:如何使用正則式匹配一段文字不包含某個(gè)字符串呢?

匹配某段文字不以某字符串結(jié)尾

比如需要匹配一段文字不以 some_text 結(jié)尾

負(fù)值字符集合

/.*[^s][^o][^m][^e][^_][^t][^e][^x][^t]$/

比較容易想到的方式。雖然笨了點(diǎn),但的確是有效的方法。但這樣做只能匹配長度≥9的字符串,而且只能判斷不以某一個(gè)字符串結(jié)尾。

零寬度負(fù)預(yù)測(cè)先行斷言

零寬度負(fù)預(yù)測(cè)先行斷言 判斷斷言出現(xiàn)的位置不匹配某個(gè)表達(dá)式。

/(?!some_text).{9}$/

該正則式斷言最后任意九個(gè)字符不是some_text。同樣只能匹配長度≥9的字符串。好處是用于斷言的字符串是一個(gè)表達(dá)式,通過 | 可以寫任意多組字符串。

零寬度負(fù)回顧后發(fā)斷言

零寬度負(fù)預(yù)測(cè)后發(fā)斷言 判斷斷言出現(xiàn)的位置之前不匹配某個(gè)表達(dá)式。它進(jìn)入 EcmaScript 標(biāo)準(zhǔn)比較晚,Chrome 62 才提供支持。

/(?

該正則式斷言行尾之前的字符串不是some_text。這樣寫就對(duì)字符串長度沒有限制,是最完美的寫法,可惜瀏覽器支持度較差。

原生 JS 方法

str.endsWith("some_text")
匹配某段文字不以某字符串開頭

比如需要匹配一段文字不以 some_text 開頭

負(fù)值字符集合

/^[^s][^o][^m][^e][^_][^t][^e][^x][^t]/

好想,但同樣只能匹配長度≥9的字符串。

零寬度負(fù)預(yù)測(cè)先行斷言

/^(!some_text)/

匹配行首位置后不出現(xiàn) some_text。沒有字符串長度限制,也沒有瀏覽器兼容性問題。

原生 JS 方法

str.startsWith("some_text")
匹配某段文字不包含某字符串

比如匹配某段文字不包含字符串 some_text

零寬度負(fù)預(yù)測(cè)先行斷言

/^((?!some_text).)*$/

正則式斷言該段文字的任意位置都不出現(xiàn) some_text。這樣理解:

/^(?!some_text).(?!some_text).(?!some_text).(?!some_text).(?!some_text).(?!some_text).……$/

原生 JS 方法

str.includes("some_text") // ES2016,注意不是 contains
str.indexOf("some_text") >= 0 // 兼容性更好

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/93147.html

相關(guān)文章

  • nginx

    摘要:文本處理工具文本處理三劍客文本過濾工具基本正則表達(dá)式,流編輯器文本編輯工具上的實(shí)現(xiàn)為,文本報(bào)告生成器,格式化文本正則表達(dá)式由一類特殊字符及文本字符所編寫的模式類別基本正則表達(dá)式擴(kuò)展正則表達(dá)式作用文本搜索工具,根據(jù)用戶指定的模式過濾條件對(duì)目標(biāo) Command grep 文本處理工具 Linux文本處理三劍客 grep:文本過濾工具(pattern) grep:基本正則表達(dá)式 se...

    andycall 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<