除了 http://example.com 之外,如何扩展此正则表达式以匹配 www.example.com

How do I extend this regex to match www.example.com in addition to http://example.com?

本文关键字:example com 正则表达式 www 扩展 何扩展 之外 http 除了      更新时间:2023-09-26

我有一个用于检测链接的正则表达式,它适用于 http://example.com、http://www.example.com 等形式的网址,但不适用于 www.example.com

正在尝试扩展我所拥有的内容,以便 www.foo.com 也匹配而不会破坏以前的功能。

我试过这个:

/'(?'b((http|https|ftp):'/'/|)(www'.)[-A-Za-z0-9+&@#'/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#'/%=~_()|]/

但这仅在 www 存在时才有效,并且不起作用,例如对于 http://example.com......

我相信我已经解决了这个问题。

我需要使 http 和 wee 块都是可选的,并且我必须修改正则表达式以仅检测以 .com/.net 等结尾的内容,这样我就不会只匹配字符串,如果 http 和 www 都是可选的

这是有效的正则表达式:

 /'(?'b((http|https):'/'/)?(www'.)?[-A-Za-z0-9+&@#'/%?=~_()|!:,.;]*'.(com|net|co)'/?[-A-Za-z0-9+&@#'/%=~_()|]*/gi;
您需要

像这样将 www 设置为可选:

/'(?'b((http|https|ftp):'/'/|)(www'.)?[-A-Za-z0-9+&@#'/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#'/%=~_()|]/

通过在 (www.) 组后添加"?",可以使其成为可选的