複数行ヒット用正規表現がヒットしなくてうっへり
$tmp = << "test"; かしら かしら ご存じかしら!? test $tmp =~ s/かしら.+!?/カカロットォ!/sg; print $tmp;
なんて正規表現は見事にヒットし、魂の叫びをコンソール結果に表示することが出来るのですが、置き換え対象文字を1つのテキストファイルとして書き出し、コンソール直打ちで正規表現置き換えを試みると……愛らしい台詞しか出でてこないのであったりします…何故…!?
# テキストファイル "tmp.txt" かしら かしら ご存じかしら!?
> perl -pe "s/かしら.+!?/カカロットォ!/sg" < tmp.txt # ↑こうしても「かしら(略)ご存じかしら!?」が出力される > perl -pe "s/かしら.+!?/カカロットォ!/sg" tmp.txt # ↑こうしても「かしら(略)ご存じかしら!?」が出力される
「なんでかなー なんでかなー」と悩んで1時間。おいらはすごい事実に気づいてしまったのかしら…!
オプション -p は 1行ずつ しか読み取っていかねぇ。
// C# string line = stdin.ReadLine(); while(line != null) { ......; line = stdin.ReadLine(); }
こんな感じ。
そりゃ
まっち
しない orz
…さて、どうしようかしらー
追記
結局テキストエディタで作業しました(苦笑 orz