我尝试用JS中的正则表达式匹配域名的根。当路径本身没有 www. 时,我遇到了问题。
例如,我尝试从这个字符串中匹配:
(http://web.archive.org/web/20080620033027/http://www.mrvc.indianrail.gov.in/overview.htm)
这就是我尝试的正则表达式,如下所示。我试穿 regex101.com
/(?<=(\/\/(www\.)|\/\/)).+?(?=\/)/g
我希望输出数组的名称为 web.archive.org
和 mrvc.indianrail.gov.in
但得到的是 web.archive.org
和 www.mrvc.indianrail.gov.in
在第二种情况下带有 www.。
最佳答案
这个正则表达式怎么样:
(?<=https?:\/\/(?:www\.)?)(?!www\.).+?(?=\/)
它匹配 web.archive.org
和 mrvc.indianrail.gov.in
而没有 www.
演示: https://regex101.com/r/5ZqK7n/3/
与初始正则表达式的区别:
- 在你的积极回顾条款中,我有
s?
来支持https:
URL(如果不需要,请将其删除) (?:www\.)?
可以出现0到1次在lookbehind之后你添加了一个否定的lookahead
(?!www\.)
来不匹配,以避免你的.+?
匹配初始的www.
关于javascript - 我如何在没有 www 的情况下匹配域名的根目录。使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564597/