0

Perlで解析する必要がある次のデータ行があります:

  my $string='Upper Left  (  440720.000, 3751320.000) (117d38\'28.21"W, 33d54\'8.47"N)';

これが私のperlスクリプトです:

  if ($string=~ m/Upper Left\s+[(]\s+\d{1,6}[.]\d{1,3}[\,]\s+\d{1,6}[.]\d{1,3}[)]\s+[(](\d{1,3})d(\d{1,2})['](\d{1,2})[.](\d{1,2})/ig) {
    $upperLeft="lat=". $1. 'd'. $2. "'". $3. ".". $4. '"W long='. $5. 'd'. $6. "'". $7. ".". $8. '"W';
    print $upperLeft. "\n";
   }

ただし、この式は、緯度として 117d38'28.21"、長さとして 33d54'8.47 に失敗します。この正規表現を作成するために使用する入力 $string のスペースと「(」に注意してください。

(117d38'28.21"W, 33d54'8.47"N) を 8 つのフィールドに抽出する際に間違っていることは何ですか? どんな助けでも大歓迎です。

4

1 に答える 1