• ベストアンサー

01_02や02_11などの文字列から0だけを取り除きたい

Perlを使って $number1 = '01_11_10'; $number2 = '03_01'; 上記のようないくつかの変数がありこの文字列から桁を調整している0を取り除きたいのです。 具体的には下のようになればいいのです。 $number1 = '1_11_10'; $number2 = '3_1'; なにかスマートな方法、一回の関数で置換する方法はございますか? ご教授よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

回答1でも問題ないと思いますが、別解。 $number1 =~ s/(^|\D)0+/$1/g; $number2 =~ s/(^|\D)0+/$1/g; 回答1の方は「数値」を「その数値に1をかけた値」に置換することで、頭の0を取り除く方法 この方法は、「(数字以外の文字)のあとに続く0」を「マッチした(数字以外の文字)」に置換することで、頭の0を取り除くというものです。

bakusui
質問者

お礼

返信が遅れました。 ありがとうございます。うまく置換できました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.1

$number1=~s/(\d+)/$1*1/ge; $number2=~s/(\d+)/$1*1/ge;

bakusui
質問者

お礼

返信が遅れました。 ありがとうございます。うまく置換できました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう