PHP-preg_替换反向引用
我在理解如何使用PHP-preg_替换反向引用,php,preg-replace,backreference,Php,Preg Replace,Backreference,我在理解如何使用preg\u replace进行反向引用时遇到了很大的问题 我有一个纯文本字符串,希望用链接的HTML语法替换每个链接。因此,“www.mydomain.tld”或“或”应包装在HTML a标记中。我已经找到了一个在线工作的函数,但我想知道如何自己做 在我找到的函数中,这是替换: "\\1<a href=\"http://\\2\" target=\"_blank\" rel=\"nofollow\">\\2</a>" “\\1” 我在那里看到一些转义
preg\u replace
进行反向引用时遇到了很大的问题
我有一个纯文本字符串,希望用链接的HTML语法替换每个链接。因此,“www.mydomain.tld”或“或”应包装在HTML a标记中。我已经找到了一个在线工作的函数,但我想知道如何自己做
在我找到的函数中,这是替换:
"\\1<a href=\"http://\\2\" target=\"_blank\" rel=\"nofollow\">\\2</a>"
“\\1”
我在那里看到一些转义引号和这些位:\\1
\\2
根据PHP文档,这些是反向引用。但是我如何使用它们,它们做什么
我在规范中找不到这方面的信息,因此任何帮助都将不胜感激 您可能希望使用类似于以下内容的内容:
$string = preg_replace('/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ ', "<a href=\"$1\">Link</a>", $yourtext);
$string=preg\u replace('/^(https?:\/\/)?([\da-z\.-]+)\([a-z\.]{2,6})([\/\w\.-]*)*\/?$/,'',$yourtext);
一些有用的链接:使用此工具尝试正则表达式:
Regex from:
命名反向引用:这将为您完成这项工作。请参阅下面的解释,了解它是如何工作的
$string = 'some text www.example.com more text http://example.com more text https://www.example.com more text';
$string = preg_replace('#\b(?:http(s?)://)?((?:[a-z\d-]+\.)+[a-z]+)\b#', "<a href='http$1://$2'>http$1://$2</a>", $string);
echo $string; // some text <a href='http://www.example.com'>http://www.example.com</a> more text <a href='http://example.com'>http://example.com</a> more text <a href='https://www.example.com'>https://www.example.com</a> more text
http$1://
创建http如果HTTPS,则反向引用$1
将包含一个's'
$2
将包含域名。我们将URL所在的链接设置为链接文本。您看到了吗?这些不是反向引用。在此上下文中,它们是匹配组占位符。如何在$1333$2
中转义数字333以及两个反向引用之间的数字?
<a href='http$1://$2'>http$1://$2</a>