编程语言
首页 > 编程语言> > 在获取PHP正则表达式时遇到问题

在获取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