改进此正则表达式以包括它匹配的内容,直到它匹配某个字符

时间:2013-04-08 00:45:47

标签: php regex html-parsing

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

现在是正则表达式:

(wwww|https?://)

3 个答案:

答案 0 :(得分:3)

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

如果您使用/.../表示法,我可能会发生冲突,因此我逃脱了攻略。 [^'"]是一个倒置的字符类,它允许除引号之外的所有内容。

编辑:我删除了插入符号以匹配任何模式:?,以使该组无法捕获。

答案 1 :(得分:1)

@(www|https?://).*?(?=['"])@i

.*?使量词不情愿,所以它会停在第一个引号而不是最后一个引号。

答案 2 :(得分:0)

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

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

您可以在www.debuggex.com处查看比赛的详细信息。