2014-04-01 29 views
0

在我的下面的腳本中,str_replace(rtrim(c_manager),'''','_')似乎不起作用。 我想用我的參數用下劃線替換單引號。例如:perl腳本中的str_replace語法

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"; 

回答

2

在字符串

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

語法

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

有」無需轉義報價並擁有'i'修飾符。 – Toto

+0

@ M42:非常感謝。 – Balakumar

+0

如何使用上述選擇語句 – user977802

0

使用這個子程序替換的字符。

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

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

    return $s; 
} 
3

如果你想在一個單引號字符單引號生產str_replace(rtrim(c_manager),'''','_'),你需要或者逃避他們:

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

,或者使用不同的分隔符:

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