我正在屏蔽字符串中的单引号(包含)之间的所有字符preg_replace_callback().但我想只preg_replace()在可能的情况下使用,但一直无法弄清楚.任何帮助,将不胜感激.
这是我使用preg_replace_callback()它产生正确的输出:
function maskCallback( $matches ) {
return str_repeat( '-', strlen( $matches[0] ) );
}
function maskString( $str ) {
return preg_replace_callback( "('.*?')", 'maskCallback', $str );
}
$str = "TEST 'replace''me' ok 'me too'";
echo $str,"\n";
echo $maskString( $str ),"\n";
Run Code Online (Sandbox Code Playgroud)
输出是:
TEST 'replace''me' ok 'me too'
TEST ------------- ok --------
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
preg_replace( "/('.*?')/", '-', $str );
Run Code Online (Sandbox Code Playgroud)
破折号被消耗掉,例如:
TEST -- ok -
Run Code Online (Sandbox Code Playgroud)
我尝试过的其他任何东西都不起作用.(我显然不是正则表达式专家.)这可能吗?如果是这样,怎么样?