Perlコーディング初心 ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
571:nobodyさん 07/11/23 21:58:25 >>570 たとえば。 $ perl -e '$s = "AABABABBBA";while($s=~s/BA/AB/g){}print $s;' 572:nobodyさん 07/11/23 22:00:18 >>570 その場合、これ以上置換できなくなるまで「$s =~ s/BA/AB/g;」の処理を行わなければならない。すなわち、ループである。 s/BA/AB/g;は、置換を行った回数を返す。つまり、0を返すまで処理を継続したいのだから、while文が使える。 したがって、次のようになる。 while($s =~ s/BA/AB/g;){} whileのあとの{}の中に何も入っていないが、これでお望みどおり動くようである。 573: ◆TWARamEjuA 07/11/23 22:31:04 BE:6970188-2BP(6825) sortって云う手もあるよなぁ♪ print join "", sort split "", "AABBABABBBABAABBAABABABABA"; 574:570 07/11/23 22:36:47 >>571-573 返信ありがとうございます。 無事whileを使う方法で出来ました。 575:nobodyさん 07/11/24 07:56:01 >>574 遅レス。 他の文字が存在しないと云う条件下なら、素直に文字数カウントするって手もある perl -le 'my $s = "atataaattttatatat" ; print "a" x ( $s =~ s/a/a/g ) . "t" x ( $s =~ s/t/t/g ) ;' ま、他の文字が存在してても外側ループ一個つけるだけだけどね。 蛇足だと思ったんだが、、、、
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4913日前に更新/271 KB
担当:undef