2010-06-02 107 views

回答

0

嘗試

^(?!\.+).+$ 

,或者,如果你需要精確匹配3個點,

^(?!\.{3}).+$ 

編輯,以顯示情況與OP目前正則表達式:

^(?!\.{3})[^0]\\swarnings?(?!\\.|\\w)$ 
+0

只要語言支持負向預測。 (例如,GNU grep不會http://www.greenend.org.uk/rjk/2002/06/regexp.html) – Stephen 2010-06-02 15:29:12

+0

嗯,這與我現有的[[^ 0] \\ swarnings?( ?!\\。| \\ w)' – iamnotmad 2010-06-02 15:32:23

+0

將您的現有代碼替換爲。+ – 2010-06-02 15:35:40

1

如果使用語言支持無限大小的lookbehinds(如.NET),您可以使用

(?<!^\.\.\..*)yourterm 

如果你不能用這個,但要知道,有可能是隻有一個匹配每行你的表情,你會發現那些通過使用

^(?!\.\.\.).*(yourterm) 

這實際上該行的整體開始匹配,但有一個術語,你在一個捕獲組感興趣。

如果每行可以有多個匹配項,我想只有一個正則表達式無法輕鬆實現。

在任何情況下,使用^(?!\.\.\.).*可能會首先排除以......開始的所有行,然後開始對這些行進行另一次運行以獲得匹配結果。

+0

儘管許多*各種語言的*實現*可能會對外觀的大小施加限制,但我懷疑任何語言本身都會施加這樣的限制。 – 2010-06-02 16:39:02

+0

+1 - 對於正則表達式方法本身,+0.3 +對於最後一段中的理智/實用建議+0.7 ;-) – Tomalak 2010-06-02 17:04:42