2015-06-16 131 views
1

它容易得到一個正則表達式,讓你所有的「COM/NET /組織」否定詞組? - 正則表達式(正則表達式)

這就是:

^.+(com|org|net)$ 

,但我試圖找到沒有一個COM/NET /組織的所有域

我似乎無法找到一個方法來否定詞組COM/NET /組織

下面是樣本字符串:

piquetraveldesign.com 
rigall.com.au 
hunt4me.co.uk 
cialis-without-prescription.us 
filipinocommunityseattle.org 
mortgageplanningblog.com 
mental-health-training.net 
final-fantasy-xiv-gil.com 
uoblife.com.sg 
unashamedandassociates.biz 
heaonlineshop.com 

任何想法?

回答

0

您可以使用負向預測聲明。

^(?!.*(?:com|net|org)$).+$ 
+0

這讓人驚歎。只是好奇,爲什麼沒有。+在最後? – Moses

+0

因爲'(?!...)'是一個只在給定位置匹配的零寬度斷言。 – hwnd

0

由於它的固定長度,你可以使用一個 lookbehind斷言。
如果所有行都在單個字符串中,則必須設置多行模式
因此$表示行結束,而不是字符串結束。

# .+(?<!\.(?:com|org|net))$ 

.+ 
(?<! 
     \. 
     (?: com | org | net) 
) 
$