【发布时间】:2013-12-16 22:56:46
【问题描述】:
我刚刚制作了一个正则表达式模式来替换指向 HTML 锚标记的链接,就是这样:
~((http\:\/\/|https\:\/\/)([^ ]+)) ~
我问这个的原因是因为我最近刚刚完成了这个正则表达式并用一些链接做了一些测试,它工作得很好但我想确保这个模式没有错误(我是一个正则表达式新手),也许正则表达式专家可以说出他的意见和/或建议。
顺便说一句,如果您要计算末尾的空格,您可能会认为如果字符串不以空格结尾,它将不起作用,但我的诀窍是将该空格添加到字符串之前替换,然后在完成后再次将其删除。
警察局:
我不关心链接的验证本身,我只想搜索以 http:// 开头并以空格结尾的字符串,没有别的,因为链接验证有点复杂。
编辑:
我的一些代码:
<?php
$patron = "~(https?:\/\/[^\s]+) ~";
//$patron = "~((http\:\/\/|https\:\/\/)([^ ]+)) ~";
$reemplazar = '<a href="$1">$1</a> ';
$cadena = "https://www.youtube.com/watch?v=7it5wioGixA ";
echo preg_replace($patron, $reemplazar, $cadena);
?>
【问题讨论】:
-
谷歌搜索“正则表达式测试器”
-
@Donovan 我做了,我用了,现在我想试试 'StackOverflow 专家测试员' :-)
-
这不是这个网站的真正目的,你实际上没有问题,你正在寻找意见。
-
那么,我应该在哪里问这个?为什么不是?仍然有疑问,如果它有问题怎么办,有人向我建议更好的东西..?
-
看看 PHP 的 filter_var 函数 - 特别是
FILTER_VALIDATE_URL选项。
标签: php regex hyperlink preg-replace preg-match