我有以下需要在 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" 作为 lat 和 33d54'8.47 一样长。请注意我用来创建此正则表达式的输入 $string 中的空格和 '('。
我在将 (117d38'28.21"W, 33d54'8.47"N) 提取到 8 个字段时做错了什么?任何帮助表示赞赏。