2015-10-06 58 views
2

我想匹配所有不含字母l的單詞。我嘗試這樣做:從[]組正則表達式中排除字符,同時仍在查找字符

[a-z^k]+ 

但顯然^只能正後方[。如果這只是信l,我想這會做:

[a-km-z]+ 

當然除了事實,它只是把l -words爲兩個詞:

image description

但這不是真正的問題,問題仍然如題:

問:如何搜索字符列表,但排除另一個字符列表?

+1

一些正則表達式的味道讓字符類減法,一些*不*。請用您的編程語言標記您的問題 – Mariano

+0

@Mariano我添加了javascript,但我希望獲得跨平臺的答案或選項列表。 –

+0

@TomášZato:對於字符集減法沒有完全不受語言限制的解決方案,禁止在減法後手動指定字符範圍。在支持預見的風格中,你可以做'(?![^ disallowedset])[allowedset]' – nhahtdh

回答

3

您需要使用\b字邊界來確保匹配不會以單詞開始和結束。

\b[a-km-z]+\b 

或者,您可以使用lookahead創建排除列表。

\b(?:(?![l])[a-z])+\b 

Demo on regex101

+0

那麼,但你解決了我解決的問題,但沒有真正發佈。問題是我想要真正的排除列表,或者可靠地解釋爲什麼這是不可能的。 –

+0

我強調這在我的問題上更加困難。 –

相關問題