成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

Nosee / 2566人閱讀

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

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

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

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

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

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

負(fù)值字符集合

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

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

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

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

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

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

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

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

/(?

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

原生 JS 方法

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

比如需要匹配一段文字不以 some_text 開(kāi)頭

負(fù)值字符集合

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

好想,但同樣只能匹配長(zhǎng)度≥9的字符串。

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

/^(!some_text)/

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

原生 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://m.hztianpu.com/yun/93147.html

相關(guān)文章

  • nginx

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

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

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

0條評(píng)論

閱讀需要支付1元查看
<