【发布时间】:2013-08-07 12:26:19
【问题描述】:
我现在已经搜索了很多,但在我的情况下我找不到任何建议。我已经看到负前瞻或环顾的成功,但我真的不明白。
我希望使用 RegExp 在文本块中查找 URL,但在引用时忽略它们。虽然还不完美,但我有以下查找 URL:
(https?\://)?(\w+\.)+\w{2,}(:[0-9])?\/?((/?\w+)+)?(\.\w+)?
我希望它匹配以下内容:
www.test.com:50/stuff
http://player.vimeo.com/video/63317960
odd.name.amazone.com/pizza
但不匹配:
"www.test.com:50/stuff
http://plAyerz.vimeo.com/video/63317960"
"odd.name.amazone.com/pizza"
编辑:
为了澄清,我可以通过表达式传递整段文本。我想要的示例段落如下:
我希望找到以下链接www.example.com。但是,应该忽略此链接“www.example.com”。最好也忽略 "www.example.com 和 www.example.com"。
我在下面工作的另一个示例。语言是php:
$articleEntry = "Hey guys! Check out this cool video on Vimeo: player.vimeo.com/video/63317960";
$pattern = array('/\n+/', '/(https?\:\/\/)?(player\.vimeo\.com\/video\/[0-9]+)/');
$replace = array('<br/><br/>',
'<iframe src="http://$2?color=40cc20" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>');
$articleEntry = preg_replace($pattern,$replace,$articleEntry);
上述结果会将任何新行“\n”替换为双换行符“
”,并将通过将 Vimeo 地址替换为 iframe 和链接来嵌入 Vimeo 视频。
【问题讨论】:
-
你用的是什么语言?
-
在您列出的不匹配 URL 示例中,第一个和第二个 URL 是否存在错误。我只能看到一个报价?
-
我正在使用 php 的 preg_replace。 @Sniffer我想我想说如果开头,结尾或两者都有报价,我不想要匹配。为了更清楚,我将发布更多代码示例。