Php替换掉字符串符号?

$b='dfsdf[2020]';
$c=preg_replace('/\[\d+\]/e','strtolower("$1")',$b);
echo $c;

因为有时候字符串老是dfsdf2020,或者dfsdf[2020],导致不一样,所以我想检测字符串如果[]中有纯数字的话,就把数字提取出来,双边的[]去掉。。我上面的代码,好像直接变成dfsdf,好像不太行,是哪里出错了吗

第1个回答  2020-07-19
preg_replace \e的用法基本已经弃用了,用下面的
$b='dfsdf[2020]dfsdf[2020]';
$c=preg_replace_callback('/\[(\d+)\]/', function ($matches){return $matches[1];}, $b);
echo $c . PHP_EOL; // 输出结果: dfsdf2020dfsdf2020
第2个回答  2020-07-12

$c=preg_replace('/\[(\d+)\]/e','strtolower("$1")',$b);

本回答被提问者采纳