1
jeffrey 2013-01-16 13:03:25 +08:00
[^">]http:\/\/((\w*)\.)+(\w*)\b
<a href="http://www.sina.com">http://www.163.com</a> http://www.v2ex.com 找到 " http://www.v2ex.com" <a href="http://www.sina.com">http://www.163.com</a>http://www.v2ex.com 找不到 |
2
mozillazg 2013-01-16 13:40:11 +08:00 1
个人觉得求正则的话,提问者应该至少说明三件事:
* 使用的程序语言或工具 * 待处理字符串特征及示例 * 结果字符串的细节约束 上面几点不讲清楚的话,回答者会搞不清楚提问者的具体需求,提问者也得不到想要的正则。 |
3
mozillazg 2013-01-16 13:45:31 +08:00
[^"']https?://\S+
|
4
clowwindy 2013-01-16 13:57:02 +08:00 1
|
6
mozillazg 2013-01-17 09:11:13 +08:00
@liuyao729 首先声明,我不会 PHP 也没有测试环境,只是上网查了一下 PHP 的替换函数。
用了一个在线执行 PHP 代码的网站进行的测试(PHP5), 该正则比较简陋并且对 <a href="http://xx?q=http://"></a> 会误判: $text = 'http://abc<a href="http://xxx">xsx</a> http://v2ex.com https://abc<img />abd'; print preg_replace('%(?<!"|\')https?://[^\s<]+%', '<a href="$0">$0</a>', $text); //<a href="http://abc">http://abc</a><a href="http://xxx">xsx</a> <a href="http://v2ex.com">http://v2ex.com</a> <a href="https://abc">https://abc</a><img />abd |
7
mozillazg 2013-01-17 09:23:29 +08:00
|
8
ljbha007 2013-01-17 10:17:15 +08:00 1
正则: (https*:\/\/\w+\.\w+.\(?:\.\w+)*)
替换:<a href="$1">$1</a> PHP的preg和javascript通用 |
9
liuyao729 OP 从目前看来没有好的解决办法了
|