我需要帮助来大写双方括号内的文本。例如:
我想转到下面:
hi, [[i]] want [[this]] to be [[uppercase]]
结果如下:
hi, [[I]] want [[THIS]] to be [[UPPERCASE]]
当我使用下面的代码时,一切都变为大写:
$pattern = '/\[\[(.*)\]\]/';
$new_string = preg_replace_callback($pattern,
function($match)
{
return strtoupper($match[0]);
}
, $string);
我的代码中缺少什么?
答案 0 :(得分:3)
你的模式很贪婪,它想要一切......
更改
$pattern = '/\[\[(.*)\]\]/';
到
$pattern = '/\[\[(.*?)\]\]/';
如果您需要更多信息,请参阅以下主题链接。
What do lazy and greedy mean in the context of regular expressions? http://www.rexegg.com/regex-quantifiers.html