preg_replace between [{ and }]


preg_replace between [{ and }]

我有这个字符串:

$string='我的字符串 [{Text_001}] 我的字符串 [{Text_002}] ';

我想用$something替换preg_replace [{something}] (例如:[{Text_001}] -> $Text_001)。

我的preg_replace有错误:

$string = preg_replace('/([{.+?)+(}])/i', "$1", $string);
$string = preg_replace('~'['{(.+?)'}']~', "'$$1", $string);
# My String $Text_001 My String $Text_002

解释示例。

'[{在PCRE中具有特殊含义(加上您的正则表达式格式不正确)。只要逃离他们:

$string = preg_replace('/(''[''{(.+?)''}''])/i', "$1", $string);

使用:

<?php
$string='My String [{Text_001}] My String [{Text_002}] ';
$string = preg_replace("~".preg_quote('[{')."(.*?)".preg_quote('}]')."~","something", $string);
echo $string;
?>

[{something}]替换为something后的输出:

My String something My String something