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

时间:2018-04-27 08:15:47

标签: php find

PHP中,我有这样的字符串:

"Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Sed cursus ante dapibus {diam}.";

我希望在{}内找到replace"BINGO"

结果:

"Lorem ipsum dolor sit amet, BINGO adipiscing elit. Sed cursus ante dapibus BINGO."

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

试试这个:

<?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;

https://3v4l.org/BbtbK

或者你似乎想要,这有点无用。

echo preg_replace("/\{(.*?)\}/", 'BINGO', $str);

https://3v4l.org/AHGXP

答案 1 :(得分:0)

您可以使用preg_replace

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

答案 2 :(得分:0)

您可以将preg_match()与str_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);

OR

您可以使用preg_replace()函数

 $replace_str = preg_replace('{(.*)}', "Your Replacing string", $str);

   echo $replace_str;

我希望这会对你有所帮助!