我试图找到一种方法来使用preg_replace_callback来替换匹配<b>
的匹配</b>
例如:
文字:
这是一个文字,文字,这是一个文字
模式
/ text /或/(text)/或任何可以找到文本的模式
我希望结果是:
这是
<b>
文字</b>
,<b>
文字</b>
,这是<b>
文字</b>
谢谢..
答案 0 :(得分:3)
你的意思是
(\btext\b)
并将其替换为
<b> $1 <\b>
我认为您不需要preg_replace_callback
,您可以使用preg_replace
的反向引用来满足您的需求。
您可以执行类似
的操作$string = 'This is a text ,, text , this is a text';
$pattern = '/(\btext\b)/';
$replacement = '<b> $1 <\b>';
echo preg_replace($pattern, $replacement, $string);
答案 1 :(得分:2)
出了什么问题:
<?php
$search = 'test';
$text = 'This is a test string';
// Filter out unwanted junk
$search = preg_replace('/[^a-z0-9]/', '', $search);
echo preg_replace('/('.$search.')/i', '<b>\1</b>', $text);
?>
这会产生:
This is a <b>test</b> string
答案 2 :(得分:0)
你为什么不尝试这个。
$string = "This is a text ,, text , this is a text";
$string = str_replace("text","<b>text</b>",$string);
它非常简单,不那么混乱:)。