我想匹配所有不含字母l
的單詞。我嘗試這樣做:從[]組正則表達式中排除字符,同時仍在查找字符
[a-z^k]+
但顯然^
只能正後方[
。如果這只是信l
,我想這會做:
[a-km-z]+
當然除了事實,它只是把l
-words爲兩個詞:
但這不是真正的問題,問題仍然如題:
問:如何搜索字符列表,但排除另一個字符列表?
我想匹配所有不含字母l
的單詞。我嘗試這樣做:從[]組正則表達式中排除字符,同時仍在查找字符
[a-z^k]+
但顯然^
只能正後方[
。如果這只是信l
,我想這會做:
[a-km-z]+
當然除了事實,它只是把l
-words爲兩個詞:
但這不是真正的問題,問題仍然如題:
問:如何搜索字符列表,但排除另一個字符列表?
您需要使用\b
字邊界來確保匹配不會以單詞開始和結束。
\b[a-km-z]+\b
或者,您可以使用lookahead創建排除列表。
\b(?:(?![l])[a-z])+\b
那麼,但你解決了我解決的問題,但沒有真正發佈。問題是我想要真正的排除列表,或者可靠地解釋爲什麼這是不可能的。 –
我強調這在我的問題上更加困難。 –
一些正則表達式的味道讓字符類減法,一些*不*。請用您的編程語言標記您的問題 – Mariano
@Mariano我添加了javascript,但我希望獲得跨平臺的答案或選項列表。 –
@TomášZato:對於字符集減法沒有完全不受語言限制的解決方案,禁止在減法後手動指定字符範圍。在支持預見的風格中,你可以做'(?![^ disallowedset])[allowedset]' – nhahtdh