• ベストアンサー

指定しない文字数から右から2番目より左の文字列を抜き出す

まじすんません、ある程度プログラムは作れるまでにはなったのですが、正規表現が難しくて、何時間やっても無理でした。大変誠に申し訳ありませんが、何卒以下の質問に答えてくださいませ。m_ _m ある固定されてない数の数字の右から2番目の左すべてを抜き出し、右端も同時にぬきだしたいのですが、なんともならんです。。。 $bango2 = 12345678;←この数字の数は固定されていません。 1 while $bango2 =~ s/(^.\d*$)(.*\d)/$1,$2/g; 結果は:1234567 と 8 が分けられるようにしたいのですが、 こうすると数字すべてが読まれてしまいます。 なんとか、分けられる方法がないでしょうか? 今後は、正規表現を中心に勉強していくつもりですんで、 今回は何卒、お教えを御願いいたします。 m _ _ m

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

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.1

こうなんじゃないでしょうか。 $bango2 = 12345678; $bango2 =~ s/(\d*)(\d)/$1,$2/;

sunnyringo
質問者

補足

ドンピシャ!でございました!本当にアホな私を救ってくださいまして、誠にありがとうございました!大変感謝感激でいっぱいです。すごく助かります。私もレベルを上げて、貴方様のように困っている方に答えられるようにしたいと感じました。 再度、お礼を申し上げます。 本当にありがとうございました!m_ _ m

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

尻尾とそれ以外を切り分ければいいんですか? #!/usr/bin/perl # -*- coding: utf8 -* use strict; use warnings; while (my $num = <DATA>) { chomp $num; my $last = chop $num; printf "%s : %s\n", $num, $last; } __END__ 1 12 123 1234 12345 123456 1234567 12345678 123456789 1 : 2 : 1 3 : 12 4 : 123 5 : 1234 6 : 12345 7 : 123456 8 : 1234567 9 : 12345678 なんでもかんでも正規表現でやろうとせんほうがいいと思いますよ。

sunnyringo
質問者

補足

ご親切にお教え頂きまして本当にありがとうございます。 ご指摘いただきました教えは心に深くとどめることに致しました。 お忙しい中ご足労頂きまして感謝致します。 m_ _ m

関連するQ&A