否定词组? - 正则表达式(正则表达式)

时间:2015-06-16 21:32:51

标签: regex regex-negation

很容易得到一个正常的表达式,让你得到所有" com / net / org"

这是:

^.+(com|org|net)$

但是,我试图找到所有域名,这些域名不具备com / net / org

我似乎无法找到一种方法来否定字组com / net / org

以下是示例字符串:

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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

由于其固定长度,您可以使用否定后瞻性断言 如果所有行都在一个字符串中,则必须设置多行模式 所以$表示行尾,而不是字符串结尾。

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

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

答案 1 :(得分:0)

您可以使用否定前瞻声明。

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