PHP正则表达式格式文本

时间:2014-03-08 10:57:46

标签: php regex

我需要php5正则表达式函数的帮助。我需要函数,它接受参数文本,正则表达式,字符串之前,之后。

function Highlight($text, $regex, $before, $after)

示例可能是我需要的最佳解释。

$text="I have apple and banana."
$regex="(apple|banana)"
$before="<b>"
$after="</b>"

我需要返回

"I have <b>apple</b> and <b>banana<b>."

一个例子只是为了说明问题,它不会是一个html元素。

谢谢

2 个答案:

答案 0 :(得分:3)

$text="I have apple and banana.";
$regex="(apple|banana)";
$before="<b>";
$after="</b>";

print preg_replace("@".$regex."@", $before."$1".$after, $text);

答案 1 :(得分:1)

使用preg_replace_callback()

function Highlight($text, $regex, $before, $after) {
    $pattern = '/'. $regex .'/';
    return preg_replace_callback($pattern, 
        function ($m) use ($before,$after) {
            return $before.$m[0].$after;
        }
    , $text);
}

Online demo