1

有人可以帮我改进这个正则表达式,以便它捕获以 http://、https:// 或 www 开头的所有内容,然后继续直到到达 ' 或 "。它包括标点符号并且不区分大小写。

这是现在的正则表达式:

(wwww|https?://)
4

3 回答 3

3
/(?:https?:\/\/|www)[^'"]*/i

我避开了斜线,因为如果您使用/.../符号,它们可能会发生冲突。[^'"]是一个倒置字符类,它允许除引号之外的所有内容。

编辑:我删除了插入符号以匹配任何出现的模式,:?以使组不被捕获。

于 2013-04-08T01:01:29.203 回答
1
@(www|https?://).*?(?=['"])@i

使.*?量词不情愿,因此它将停在第一个引号而不是最后一个引号。

于 2013-04-08T00:47:52.180 回答
0

以下正则表达式将起作用:

(?:https?:\/\/|www)[^'"]*

您可以在www.debuggex.com 浏览比赛的详细信息。

于 2013-04-08T18:52:47.273 回答