• ベストアンサー

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
質問者

お礼

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

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

関連するQ&A

  • 参照文字列から検索文字列を置きの件

    >SUBSTITUTE(SUBSTITUTE(文字列,検索文字1,置換文字1),検索文字2,置換文字2)  上記の関数は8桁以上は出来ません、他の方法の関数があれば、  よろしくお願いします。(13桁)  尚、マクロ以外でできますか。  例、 A-福岡      B-佐賀

  • 文字列の修正

    初心者です よろしくお願いします Excel2010で次のようなことがしたいです 列のセルには次のような文字列が入っています  文字列 No.3 とか No.26 とか No.302 とかです  要するに「No.」の後に数字のところが 1桁 または 2桁 または 3桁です やりたいことは No.3はNo.003に No.26はNo.026にと 桁数を3桁に揃わせたいのです 関数にそのようにするものがあるのでしょうか? またあれば 同時に使い方も教えて頂きたいです よろしくお願いします。

  • シェルの文字列取得について

    シェル(Bash)の文字列取得についてご教授ください。 文字列:  test(12345) 上記の文字列から"12345"(括弧内の数値部分)を取り出し、変数へ格納する場合、どのように行えばよいのでしょうか? ちなみに1桁だったり2けただったりと数値の桁は変動します。 よろしくお願いします。

  • ユニークな文字列を作りたい。

    C♯、.NET FrameWordk2.0環境です。 戻り値として32~35桁のユニークな文字列(半角英数字のみ)を返すメソッドを 作りたいと思っています。 GUIDを発行してやれば良いかと思ったんですが、ハイフンが入っていたり、 アルファベットが大文字小文字混じっていたり(小文字のみにしたい)で、そのままでは 使えません。 発行したGUIDを、サクッと半角英数字(英字は小文字に置換)できるような方法は ないでしょうか? または、もっと簡単にユニークな文字列を発行できる方法がありましたら、ご教授 いただけるとありがたいです。 宜しくお願いします。

  • textファイルにある文字列の置換について

    すみません。 PERL初心者のものですが教えてください。 例えば、a.txtに以下の文字があるとします。 1234567,1111,9,8 1234568,1122,0,5 .... この時、「9」と「0」を文字列 9を"あいうえお" 0を"さしすせそ" と置換したい場合、どのように文字列を置換すれば良いのか ご教授いただけると幸いです。 既に他の方が質問済みでしたら済みません。

    • ベストアンサー
    • Perl
  • 文字列の置換

    JAVAであるファイル内の文字列を置換するプログラム(日本語)を作りたいのですが、 ・ ・ String h_s; FileReader h_fr = new FileReader(in_filename); BufferedReader h_br = new BufferedReader(h_fr); while(true){  h_s = h_br.readLine();  if (h_s == null){   break;  }  ●文字列を置換するプログラム● } ・ ・ ここの●文字列を置換するプログラム●にあたる適当な関数って何かありますか? たとえばperlでいうと↓みたいなものなのですが・・・ s/置換前文字/置換後文字/g よろしくお願いします。

    • ベストアンサー
    • Java
  • 文字列から、4桁ないし6桁数値だけ抜き出す。

    テキスト文字列内にある、4桁~6桁 の連なる数値だけ抜き出したいです。 なにかいい関数とかないでしょうか。 例) 適当な文字列1234その他の文字列567890AZKNBU79ddAflP@K           ↑            ↑          ここと        この部分だけ抜き出し、 これらを適当な変数に代入。

    • ベストアンサー
    • Perl
  • ファイル内の文字列を置換

    掲示板利用させていただきます。 現在、ファイル内の特定の文字列を置換し、 保存する方法を探しています。 できればスクリプト言語を利用したいと考えています。 sedコマンドを使用して文字列置換を行ったのですが 置換前と置換後のファイルで 文字コードと改行コードが変わってしまうのでダメでした; 「ファイル内の特定の文字列を任意の文字列に置換し、置換前と置換後で改行コードと文字コードを変えない方法」 をご存知の方、ご教示ください。 bash,perl,javaのどれでも結構です。 よろしくおねがいします。

  • マクロである文字以降の文字列を取得するには?

    2枚のシートの一部ずつを条件に合わせ取り入れ新シートを作るマクロを作っています。 そこで1つ問題な列があります。 D列の各セルには「,」で区切られて2つのデータが入っています。 123 , 456 55 , 67 8 , 1 678 , 9      の様な形です。 「,」の両側にはスペースが入っています。 このうちの「,」の右側の数値を変数に入れたいんですが、文字数が行によって違います。 右側がスペースを含めて3文字に決まっているなら、   変数 = Right(Cells(i, 4), 3) の様な感じになりますが、一桁から三桁まであります。 こういう場合、「,」の右側を取得する関数とか有るんでしょうか? それとも他の方法を取るんでしょうか?

  • double型を文字列で。

    doubleが文字列表現したいのですが、printfで"%f"をしていしても桁が足りません。 検索で調べても桁を指定しているものが多く、汎用的ではないように見えます。 変数にセットされたdouble値をそのまま文字列で表現する方法はないのでしょうか?