preg_replace我想用引号中的中文+英文替换文本

时间:2013-12-06 16:50:12

标签: php preg-replace preg-replace-callback chinese-locale

我想用引号中的中文+英文替换文字:

示例源文本:

   emMsg('您的php版本过低,请选择支持PHP5的环境安装英文单词。');

  

(程序不会自动创建数据库,请提前创建一个空数据库或使用已有数据库)

preg_replace("/(?:[(]([\p{Han}]+)[)] )?/ux", '-', $val);

但结果未获得,我做错了什么?

1 个答案:

答案 0 :(得分:0)

$str = "emMsg('您的php版本过低,请选用支持PHP5的环境安装english word。');";
$res = preg_replace( "~emMsg\(('*)(.+?)('*)\);~", 'emMsg(\\1-\\3);', $str );
print_r( $res );

这就是你的意思吗?

$str = "emMsg('您的php版本过低,请选用支持PHP5的环境安装english word。');";
$str = preg_replace( "~\p{Han}+~u", '', $str );
$res = preg_replace( "~emMsg\(('*)(.+?)('*)\);~", 'emMsg(\\1\\2\\3);', $str );
print_r( $res );

我认为你不能以任何格式匹配所有与拉丁语混合的汉语。