Perlについての質問箱 30箱目
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
400:デフォルトの名無しさん 07/05/01 22:01:18 せっかく書いたんだからたぶんとかいってないで動かしてみるべきだな。 401:395 07/05/01 22:02:38 すみません、やっぱ問題がありました。置換位置\Gが正規表現に含まれている と、置換される文字列に改行が含まれている際に、オプション"g"をつけても 複数置換してくれなくなってしまうのですが、どうすればいいんでしょうか。 perl -e '$text = "a\na\na"; $text =~ s/\Ga/b/gm; print "$text\n";' 結果: b a a perl -e '$text = "aaa"; $text =~ s/\Ga/b/gm; print "$text\n";' 結果: bbb perl -e '$text = "a\na\na"; $text =~ s/a/b/gm; print "$text\n";' 結果: b b b 402:デフォルトの名無しさん 07/05/01 22:23:56 \Gは置換文では使わないほうがいいよ。代入されるとposがリセットされてしまうから あとを置換しながらposを保持することはできないのでコピーを作ることを考えてみては 自分ならこう書く my $replaced_text; pos $text = 0; while (pos $text < length $text) { if ($text =~ m/\G $regexp/gcsx) { # ここで入力による分岐処理を行う } elsif ($text =~ m/\G(.+?) (?=$regexp)/gcsx) { $replaced_text .= $1; } else { $text =~ m/\G (.*)/gcsx; $replaced_text .= $1; }
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5368日前に更新/220 KB
担当:undef