2010-04-08 27 views
3

是否可以定義一個正則表達式模式, 3個術語與主串中的位置無關?正則表達式問題:單詞的獨立位置

例如。我的字符串是一樣的東西"click here to unsubscribe: http://www.url.com"

的模式也應與"http:// unsubscribe click"

THX

+0

任何特定的原因,它將不得不用一個正則表達式來完成? – 2010-04-08 16:48:48

+1

瞭解您正在使用哪種語言會很有幫助。不同的編程語言支持不同的正則表達式語法。 – 2010-04-08 17:45:07

+0

你如何使用這個正則表達式?根據您是驗證短字符串還是在更大的文本(如網頁)中搜索此字符串,答案會有很大不同。 – 2010-04-08 21:25:53

回答

2

這是可能,但結果很複雜regexs,如工作:

/(click.*unsubscribe|unsubscribe.*click)/ 

基本上,你每個訂單需要有不同的正則表達式部分。不理想。最好只使用多個正則表達式,每個術語一個。

+0

或者使用「索引」或等價物三次。 – 2010-04-09 02:42:07

9

您可以使用positive lookaheads。例如,

(?=.*click)(?=.*unsubscribe).*http 

是一個正則表達式,將向前看從當前位置(不向前推進)爲click,那麼對於unsubscribe,然後正常搜索http

+0

只有當「點擊」和「取消訂閱」在*「http」後面出現時才起作用,這與OP的第一個示例不同。 – 2010-04-08 21:21:55

+0

@Alan Moore:的確如此。糾正。 – 2010-04-09 09:43:40