在获取PHP正则表达式时遇到问题
作者:互联网
这是我的问题.这可能是一个简单的修复.我有一个正则表达式,用于替换URL BBCode.我现在无法正常工作的情况如下所示.
<?php
$input_string = '[url=www.test.com]Test[url]';
$regex = '/\[url=(.+?)](.+?)\[\/url]/is';
$replacement_string = '<a href="$1">$2</a>';
echo preg_replace($regex, $replacement_string, $input_string);
?>
当前输出原始的$input_string,而我希望输出以下内容.
<a href="www.test.com">Test</a>
我想念什么?
解决方法:
<?php
$input_string = '[url=www.test.com]Test[/url]';
$regex = '/\[url=(.+?)\](.+?)\[\/url\]/is';
$replacement_string = '<a href="$1">$2</a>';
echo preg_replace($regex, $replacement_string, $input_string);
?>
>在您的BBCode字符串中,我关闭了
[url]正确.
>我在正则表达式中转义了一个[](不确定这是否是实际问题).
请注意,[url] http://example.org [/ url]也是在BBCode中建立链接的有效方法.
您应该听一下建议使用现有BBCode解析器的注释.
标签:preg-replace,php,regex 来源: https://codeday.me/bug/20191208/2094605.html