正则表达式匹配除admin / www / mail之外的所有域名

时间:2012-03-21 16:55:17

标签: regex

我是正则表达式的新手,但是给我这个,我需要找到一个匹配:

a.com
b.com
c.com
aa.com
admin.com
www.com
mail.com
vg.com

结果,我找到了除admin / www / mail之外的所有域的正则表达式。

我写了这个:

[a-zA-Z0-9]+.com

但如何排除管理员,邮件,www

我试过了:

^(www|mail|admin)[a-zA-Z0-9]+.com

但它不起作用

4 个答案:

答案 0 :(得分:1)

试试这个

\w+(?<!admin|mail|www)\.com

这是一些测试 http://www.rubular.com/r/frRl1ucR8J

进一步阅读正则表达式:http://www.regular-expressions.info/tutorial.html

我使用的技巧叫做Negative LookBehind http://www.regular-expressions.info/lookaround.html

答案 1 :(得分:0)

排除某些内容并不简单,但这里有一个帮助链接:

http://www.codinghorror.com/blog/2005/10/excluding-matches-with-regular-expressions.html

是否可以先使用替换?您可以先执行查找/替换以消除与要跳过的内容相匹配的行,然后使用正则表达式。

答案 2 :(得分:0)

您可以这样做来搜索不包含admin的字符串:

^((?!admin).)*$

我不知道怎么做多个字符串...

答案 3 :(得分:0)

我使用它,有点类似已经回答过。

/^[A-Za-z0-9._'%+-]+@(\[(\d{1,3}\.){3}|(?!hotmail|gmail|yahoo|live|msn|outlook|comcast|verizon)(([a-zA-Z\d-]+\.)+))([a-zA-Z]{2,4}|\d{1,3})(\]?)$/i