PHP如何使用preg替换而不是ereg替换?

时间:2013-09-30 02:16:00

标签: php regex

由于ereg replace被折旧,我想知道如何使用preg。这是我的代码,我需要替换{}标签。

$template = ereg_replace('{USERNAME}', $info['username'], $template);
    $template = ereg_replace('{EMAIL}', $info['email'], $template);
    $template = ereg_replace('{KEY}', $info['key'], $template);
    $template = ereg_replace('{SITEPATH}','http://somelinkhere.com', $template);

如果我只是将其切换为preg替换它将无效。

2 个答案:

答案 0 :(得分:2)

使用str_replace(),为什么不呢?

像这样,哇:

<?php
$template = str_replace('{USERNAME}', $info['username'], $template);
$template = str_replace('{EMAIL}', $info['email'], $template);
$template = str_replace('{KEY}', $info['key'], $template);
$template = str_replace('{SITEPATH}','http://somelinkhere.com', $template);
?>

像魅力一样。

答案 1 :(得分:0)

我不知道ereg_replace如何工作,但preg_replace使用正则表达式。

如果您想要替换“{”和“}”

正确的方法是:

$template = preg_replace("/({|})/", "", $template);
// if $template == "asd{asdasd}asda{ds}{{"
// the output will be "asdasdasdasdads"

现在,如果您想将“{”和“}”替换为其中特定内容的位置,您应该执行:

$user = "whatever";
$template = preg_replace("/{($user)}/", "$0", $template);
// if $template == "asd{whatever}asda{ds}"
// the output will be "asdwhateverasda{ds}"

如果您想将“{”和“}”替换为可能是任何只包含“a”到“Z”字母的字符串

您应该使用:

$template = preg_replace("/{([a-Z]*)}/", "$0", $template);
// if $template == "asd{whatever}asda{ds}{}{{{}"
// the output will be "asdwhateverasdads{}{{{}"