我有一个读取foo_bar_one的字符串,我想要实现的是
foo_Bar_One,使用这个正则表达式/(?<=_)./
我试图实现一个preg_replace_callback
,但它不能正常工作,否则我误解了函数的功能。
这是我的方法
preg_replace_callback(
'/(?<=_)./',
function ($matches) {
return strtoupper($matches[0]);
},
$model_name
);
匹配并转换为Caps但是何时返回?它不会在实际搜索文本中替换它吗?
答案 0 :(得分:0)
如果subject参数是,则preg_replace_callback()返回一个数组 数组,否则为字符串。出错时,返回值为NULL
如果找到匹配项,则返回新主题,否则返回 科目将不变。
因此,您可以捕获返回的内容,如:
$model_name = "foo_bar_one";
$result = preg_replace_callback(
'/(?<=_)./',
function ($matches) {
return strtoupper($matches[0]);
},
$model_name
);
echo $result;
那会给你
foo_Bar_One