如何在特定字符(PHP)处查找和替换文本字符串?

如何在特定字符(PHP)处查找和替换文本字符串?,php,find,Php,Find,在PHP中,我有如下字符串: "Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Sed cursus ante dapibus {diam}."; 我想用“宾果”查找并替换{}中的单词 结果: "Lorem ipsum dolor sit amet, BINGO adipiscing elit. Sed cursus ante dapibus BINGO." 任何帮助都将不胜感激。试试以下方法: <?php $var

PHP
中,我有如下字符串:

"Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Sed cursus ante dapibus {diam}.";
我想用
“宾果”
查找并替换{}中的
单词

结果:

"Lorem ipsum dolor sit amet, BINGO adipiscing elit. Sed cursus ante dapibus BINGO."
任何帮助都将不胜感激。

试试以下方法:

<?php
$vars = [
    'consectetur' => 'BINGO',
    'diam' => 'BINGO'
];

$str = "Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus {diam}. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.";

$parsed = preg_replace_callback("/\{([\w\_]{1,})\}/", function ($match) use ($vars) {
    return array_key_exists($match[1], $vars) ? $vars[$match[1]] : '';
}, $str);

echo $parsed;

您可以使用preg\u replace

<?php
$string = 'your String';
$pattern = '/\{(.*?)\}/';
$replacement = 'BINGO';
echo preg_replace($pattern, $replacement, $string);
?>

您可以将preg\u match()与str\u replace-

$str = "Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus {diam}. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.";

preg_match('{(.*)}', $str , $matches);

print_r($matches);

output - Array ( [0] => {hello:{}{}yooohooo} [1] => {hello:{}{}yooohooo} ) 
在php的str_replace()函数中使用此输出

echo str_replace($matches[0],"Your Replacing string",$str);

您可以使用preg_replace()函数


我希望这对你有帮助

是否希望
{}
之间的所有值相同?为什么?这只是一个例子。这是用于模板占位符,还是只想更改为一个值?不管怎样,我下面的答案涵盖了这两个方面。实际上我在{(123+2)/2}中有一个等式。我需要计算并打印ansver.lol,你漏掉了最大的部分。。您需要将其正则化并求值,然后将结果用作值。你需要打开一个新问题,你不能像那样移动目标帖子。很抱歉上一个错误的版本。我已经改正了。试试看这仍然是目前为止最好的答案
 $replace_str = preg_replace('{(.*)}', "Your Replacing string", $str);

   echo $replace_str;