文字列の抽出がうまくできません
こんにちは。Perl初心者です。みなさんのお力をお借りしたく、初めて投稿させていただきました。よろしくお願いします。
現在、ファイルから特定した行を抽出し、その行に含まれる文字列を抽出しようとしているのですが、その文字列の抽出がうまくできません。
<文字列を含むファイル:xxx.txt>
--------------------------
To 鈴木 太郎さん 1行目
:
01,りんご, 3 個, ナシ, 1個 14行目
02,キャベツ, 3 個, なす, 10本 15行目
:
--------------------------
<スクリプトファイル:yyy.pl>
--------------------------
open(DAT, "./xxx.txt") || die("can't open file : ($!)");
@file = <DAT>;
close DAT;
if ( $file[0] =~ /(\W+\s)(\W+)/ ) {
print "$1\n";
}
print "$file[13]\n";
print "$file[14]\n";
--------------------------
<結果>
--------------------------
鈴木
--------------------------
抽出したい結果は「鈴木 太郎」なんですが、上記のような結果(「1byteのスペース」鈴木「2byteのスペース」)になってしまいます。xxx.txtの「To」と「鈴木」の間と、「鈴木」と「太郎」の間にはそれぞれ1byteのスペースがあります。どうやったら「鈴木 太郎」と抽出できるか教えてください。
スクリプトは「Copal2(ver2.77)」というツールを使って作りました。そのツールではエンコードは「自動判別」となっており実際何が使われているのか分かりません。
また他にも質問があります。
今抽出したい行を指定して出力させてますが、
「To」から始まる行
「01」といった2桁の数字から始まる行
というような抽出の仕方をしたいのですが可能でしょうか?
本当に初心で大変恐縮ではありますが、教えてください。
よろしくお願いいたします。
お礼
完璧です。 大変助かりました。ありがとうございます。