【发布时间】:2011-04-26 01:30:32
【问题描述】:
我得到了以下代码,它用相应的链接替换了 URL:
$in = array
(
'/(?:^|\b)((((http|https|ftp):\/\/)|(www\.))([\w\.]+)([,:%#&\/?=\w+\.-]+))(?:\b|$)/is'
);
$out = array
(
"<a href=\"$1\" target=\"_blank\">$1</a>"
);
return preg_replace($in, $out, $url);
但是,我不希望 SRC="url" 属性中的 URL 被转换为链接。
如何从该模式中排除包含在属性中的 URL?
更新: 输入将是:
Bellow you can see http://www.yahoo.com bla bla
<iframe src="http://yahoo.com"></frame
它需要解析第一个链接,而不是 src="" 中的 URL
【问题讨论】:
-
这就是为什么您不使用正则表达式来处理 HTML 等不规则语言的原因。
-
但不能排除以 >" 开头的链接
-
@deceze 你用什么做?我知道在这种情况下还有很多其他选择,但是说不应该在 HTML 上使用正则表达式有点笼统。
-
我只需要转换前面没有>"的链接
标签: php regex pattern-matching