我知道以下正則表達(dá)式將匹配“紅色”,“綠色”或“藍(lán)色”。red|green|blue是否有一種簡(jiǎn)單的方法可以使它匹配除幾個(gè)指定字符串以外的所有內(nèi)容?
3 回答

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果要確保該字符串既不是紅色,綠色也不是藍(lán)色,那么caskey的答案就是這樣。但是,通常需要確保該行的任何位置都不包含紅色,綠色或藍(lán)色。為此,將正則表達(dá)式與錨定^并包含.*在否定的lookahead中:
^(?!.*(red|green|blue))
另外,假設(shè)您想要包含單詞“ engine”但沒有任何這些顏色的行:
^(?!.*(red|green|blue)).*engine
您可能會(huì)認(rèn)為可以.*將正則表達(dá)式的開頭作為因素:
^.*(?!red|green|blue)engine # Does not work
但是你不能。您必須同時(shí)具有兩個(gè)實(shí)例.*才能正常工作。

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
取決于語言,但是通??梢赃@樣輸入否定斷言:
(?!red|green|blue)
(感謝語法修復(fù),以上是有效的Java和Perl,YMMV)
- 3 回答
- 0 關(guān)注
- 909 瀏覽
添加回答
舉報(bào)
0/150
提交
取消