- ベストアンサー
この置換処理について
以下の処理がうまくいきません。 perlで実行すると以下の置換を行ってテキストファイルができるはずなのですが、0KBのテキストファイルができてしまいます。 そこで、手動で置き換えようと思ったのですが。 正規表現を使用した、置換処理を行っているということはわかっているのですが中の処理が分かりません。 詳しい処理の内容を教えていただけないでしょうか。 よろしくお願いいたします。 while(<>){ if(m#^(.+) /// (.+)$#){ $flg = 1; $word = $1; $text = $2; $line = $_; if($word =~ / /){ #熟語なら if(length($word) > 15){ $flg = 0; } elsif($word =~ /([A-Za-z]+) ([A-Za-z]+)/){ if(length($1) > 5 && length($2) > 5){ $flg = 0; } } } if($text =~ m#/#){ $text =~ s#/ .+##g; } } if($flg){ print $word.' /// '.$text."\n"; } }
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.5
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.3
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.2
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
お礼
スクリプトは質問内容ので全てです。 試しにSift-JSに変換してで試したところ、うまくいきました! でもなぜでしょうか…