带有或不带有'www'的域名正则表达式

4

我希望从给定的字符串中搜索域名

Lorem www.example.in ipsum #web-developer dolor sit amet, consectetur adipiscing elit. Donec suraj@mishra.com consequat sem eros, et volutpat google.com lacus dignissim ac. Pellentesque ac nisl et erat porta feugiat. +91-141-2561894 Vestibulum #web_designing sodales semper stackoverflow.com

我尝试过什么:

(www.)?[^@]\w+\.+\w{2,3}

它返回给我5个匹配项,分别是www.example.inmishra.comgoogle.comstackoverflow.com,但我只想要3个加粗的匹配项。

请问你们能否帮我找出我做错了什么?

这里有一个RegEx101测试

console.log("Lorem www.example.in ipsum #web-developer dolor sit amet, consectetur adipiscing elit. Donec suraj@mishra.com consequat sem eros, et volutpat google.com lacus dignissim ac. Pellentesque ac nisl et erat porta feugiat. +91-141-2561894 Vestibulum #web_designing sodales semper stackoverflow.com".match(/(www.)?[^@]\w+\.+\w{2,3}/g))


感谢 @mplungjan 的编辑! - AZinkey
YW。链接会失效,因此最好在SO上发布一个[mcve]。 - mplungjan
1个回答

2

一种可能的方法(需要 PCRE):

\b(?<!@)(?:www\.)?[^@\s]+\.\w{2,3}
  • \b(?<!@) - 忽略类似于 email 域名的部分,例如 ...@mishra.com

https://regex101.com/r/knOchH/5


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接