这个正则表达式可以做得更好吗?

时间:2011-07-26 23:22:53

标签: regex

我试图仅限制某个域的特定面额但允许其他域名。例如,正则表达式是

^(www\.)?(?!abc\.co)[a-zA-Z\-]+\.(co|org)\.uk$

这将禁止abc.co.uk和www.abc.co.uk,但允许www.abcdef.co.uk,www.abc-def.co.uk等,但是我想知道这是否可以做得更好?

修改

以下是允许子域的相同正则表达式的示例。

^(www\.)?([a-zA-Z\-]+\.)?(?!abc\.co)[0-9a-zA-Z\-]+\.(co|org)\.uk$

1 个答案:

答案 0 :(得分:1)

您似乎希望匹配abc.co.ukabc.org.uk结尾的任何内容。
假设这是正确的,这是正则表达式:

(?<!abc.(co|org).uk)$

这使用了从输入末尾开始的负面外观来断言它不会以给定的正则表达式结束。