我是正则表达式的新手,但是给我这个,我需要找到一个匹配:
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
但它不起作用
答案 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