2010-04-24 39 views

回答

4

正則表達式是不是測試這些各種條件下的最佳工具,但如果你一定要,那麼你可以用negative lookaheads做到這一點:

^(?!.*word1)(?!.*word2)(?!.*word3).*$ 

你正在嘗試做並不會因爲[^...]工作是一個帶有無序字符列表的負面字符類。你所寫的等價於:

^([^123dorw|])$ 

還請注意,根據您的需求,您可能還需要包括文字,界限在你的正則表達式:

^(?!.*\bword1\b)(?!.*\bword2\b)(?!.*\bword3\b).*$ 
+0

@Mark Byers,但我需要在.htaccess中使用ir。 它會通過^(?!。* word1)(?!。* word2)(?!。* word3)。* $? – Simon 2010-04-24 13:48:22

+0

@Syom:是的,這取決於你需要什麼。您應該嘗試瞭解它的含義,以及何時和爲何它的工作原理,特別是關於單詞邊界的部分,然後再複製並粘貼到文件中。 – 2010-04-24 13:54:37

+0

非常感謝馬克。但它對我來說是新的!我很想這樣做。你可以解釋爲什麼嗎? ?和。和* in(?!。* word1),以及你在哪裏「說」'沒有這些單詞'? – Simon 2010-04-24 14:00:09

0

IM不熟悉使用正則表達式在htaccess,所以我的想法可能會有點高水平:

你試試看起來像種: 如果句子包含不是 word1 | 不是 word2 | WORD3 然後做一些

我會提出一個解決方案的方式: 如果句子中包含字詞1 |單詞2 | WORD3 然後什麼也不做 別的做點什麼

手段不使用否定在「查詢」中,但在結果中,這使得正則表達式更簡單。