我正在学习 PHP 语言,并且在某些 PHP 脚本中遇到了这一行:
function cc($re,$val){
return preg_replace( '/('. $re . ')/ei ,
'strtolower("\\1")',
$value
);
}
那么该符号在 strtolwer函数中是什么意思'// 1' 我不要求正则表达式! ,我要求在 php 中使用/ 1表示?
答案 0 :(得分:2)
反斜杠是escape character,用于转义后面的反斜杠。这意味着它将\\1
转换为\1
,并且\1
是对preg_replace输出的引用。您的代码有一些错误,我已将其清除:
function cc($re,$val){
return preg_replace( '/('.$re.')/ei' ,'strtolower("\\1")',$val);
}
请记住,这在PHP的较新版本中将不起作用,因为在PHP的较新版本中,不再支持/ e修饰符,因此我们建议改为使用preg_replace_callback() :
function cc($re,$val){
return preg_replace_callback( '/('.$re.')/i' ,function($matches){
return strtolower($matches[1]);
},$val);
}