使用RegEx匹配domain.com和www.domain.com,但没有其他子域名?

问题描述:

对不起,如果这已被问到其他地方,我一直在寻找,无法找到它为我的生活。我试图解决正则表达式问题,我总是遇到更高级的场景问题......其他人发现它们非常容易,所以也许我的问题出现了。使用RegEx匹配domain.com和www.domain.com,但没有其他子域名?

无论如何,我正在尝试编写一个与www.domain.com或domain.com匹配但没有其他子域或任何东西的正则表达式。我想要传递正则表达式的唯一两个字符串是“domain.com”和“www.domain.com”,除了包含所有子域匹配之外,我一直无法找到我正在寻找的内容,而我发现它很容易。

我最近来的是这样的:regex for matching something if it is not preceded by something else但在这种情况下,它只失败了一个前面的字符串,我希望它只能成功一个前面的字符串/子域。请注意,“domain.com”将始终是静态的,这意味着它始终是精确字符串“domain.com”而不是各个域。

非常感谢您对此发表意见!

泰勒

+0

请使用'example.com'和朋友作为示例域。我怀疑你自己的domain.com。 – Quentin 2012-02-20 12:56:39

只需将择部分非捕获组中,并使其可选。

/^(?:www\.)?example.com$/ 
+1

与捕获组一样(没有'?:')也可以工作,但可能会更慢。 – jofel 2012-02-20 12:58:18

+0

谢谢,太简单了,我甚至看不到。它按预期工作。 – Tyler 2012-02-21 21:41:59