$1が文字化けする件に関して。 それは、日本語の半分(半角英数分のデータ)しか取り出していないからです。正規表現は日本語用に作られていないので、全角文字も半角英数として文字を処理するはずです。 $t="あいう"; @a=split(//,$t);#あいうを一文字ごとに区切り、配列にする foreach(@a){print $_,"\n";} を実行すれば分かります。全て文字化けし、ループは6回繰り返されます。(全角3文字=半角6文字) 一応あれは【】の中身を取り出すことのみを考えたものだったので、以下のようにすれば何とかなります。 $text='あは【件名】本文'; $text=~s/(.*)(\【.+?\】)(.*)/$2/; print $text,"\n"; あは、を取り出したいなら2行目の$2を$1に。本文、を取り出したいなら$3に書き換えてください。正常に出来ると思われます。 ち
![Perlの正規表現で文字の抽出](https://cdn-ak-scissors.b.st-hatena.com/image/square/a73abc454de4aaacb370bad26db2312eacbc7375/height=288;version=1;width=512/https%3A%2F%2Foshiete.xgoo.jp%2Fimages%2Fsp%2Fqa_recommend%2F2101_2.jpg)