我现在已经搜索了很多,但在我的情况下我找不到任何建议。我已经看到负前瞻或环顾的成功,但我真的不明白。
我希望使用 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”,并将通过用 iframe 和链接替换 Vimeo 地址来嵌入 Vimeo 视频。