perl脚本中的str_replace语法

时间:2014-04-01 05:52:33

标签: sql perl syntax replace

在我的下面的脚本中,str_replace(rtrim(c_manager),'''','_')似乎无法正常工作。 我想用我的参数替换单引号和下划线。例如:

Input: `S'achin`  
Result: `S_achin`

 $sql = 'select rtrim(f_admin_disabled),'."\n".
       '       convert(varchar,t_password,101),'."\n".
       '       rtrim(c_email),'."\n".
       '       str_replace(rtrim(c_manager),'''','_'),'."\n".
       '       rtrim(c_mgr_email)'."\n".
       '  from tuserprofile'."\n".
       ' where ic_user1 = '."'$user_id'"."\n";

3 个答案:

答案 0 :(得分:3)

如果您想在单引号字符串中使用单引号来生成str_replace(rtrim(c_manager),'''','_'),,则需要转义它们:

'       str_replace(rtrim(c_manager),\'\'\'\',\'_\'),'

或使用不同的分隔符:

q!       str_replace(rtrim(c_manager),'''','_'),!

答案 1 :(得分:2)

替换字符串

中的字符
$string=~s/'/_/g;

语法

$string=~s/<string>/<replace_string>/g;

答案 2 :(得分:0)

使用此子程序。

sub str_replace {
  my ($s) = @_;

  $s =~ s/'/_/g;

  return $s;
}