使用preg_REPLACE替换<br/>

2022-03-22 00:00:00 php preg-replace

我读了一些关于preg_place的文章,仍然不明白所有这些奇怪的]{!(‘/)[字符是什么意思。

基本上,我希望找到Break的第一个实例<br />,并将其替换为</strong><br />

我的代码:preg_replace('<br />', '</strong><br />', nl2br($row['n_message']), 1)

但我知道我在声明字符串<br /></strong>时遗漏了一些东西。

有什么帮助吗?谢谢。


解决方案

正则表达式

您唯一缺少的是regexp模式中的分隔符。我相信这可以是任何一个字符;一个常见的选择是一个向前的劈开。但是,当然,您必须转义现有的正斜杠。这里有两个使用前向劈开和右方括号的示例。

$text = preg_replace('/<br />/', '</strong><br />', nl2br($text), 1);
$text = preg_replace(']<br />]', '</strong><br />', nl2br($text), 1);

替代方案

我同意michaeljdennis的观点,在这种情况下您应该使用str_replacepreg_replace适用于高级替换,但不适用于如此简单的替换。

但是,str_replace没有$Limit参数。如果您希望将替换数量限制为第一个实例,请执行类似

的操作
// Split the string into two pieces, before and after the first <br />
$str_parts = explode('<br />', $row['message'], 2);

// Append the closing strong tag to the first piece
$str_parts[0] .= '</strong>';

// Glue the pieces back together with the <br /> tag
$row['message'] = implode('<br />', $str_parts);

相关文章