我如何不使用www就能匹配域名的根。使用正则表达式

Vse*_*rov 6 javascript regex match

我尝试用JS中的正则表达式匹配域名的根。路径没有www时出现问题在他自己。

例如,我尝试从此字符串进行匹配:

(http://web.archive.org/web/20080620033027/http://www.mrvc.indianrail.gov.in/overview.htm)
Run Code Online (Sandbox Code Playgroud)

多数民众赞成在正则表达式我尝试如下。我在regex101.com上尝试了他

/(?<=(\/\/(www\.)|\/\/)).+?(?=\/)/g
Run Code Online (Sandbox Code Playgroud)

我期望输出数组名称web.archive.orgmrvc.indianrail.gov.in而获得web.archive.orgwww.mrvc.indianrail.gov.in使用WWW。在第二种情况下。

All*_*lan 1

这个正则表达式怎么样:

(?<=https?:\/\/(?:www\.)?)(?!www\.).+?(?=\/)
Run Code Online (Sandbox Code Playgroud)

它匹配web.archive.org并且mrvc.indianrail.gov.in没有www.

演示: https: //regex101.com/r/5ZqK7n/3/

与初始正则表达式的差异:

  • 在你的积极lookbehind子句中,我必须s?支持https:URL(如果不需要,请将其删除)
  • (?:www\.)?可以出现 0 到 1 次

  • 在lookbehind之后,您添加一个否定的lookahead(?!www\.)以不匹配,以避免您的.+?匹配初始www.