use strict;
my $str = 'Language = "Traditional Chinese"
Hideout Name = "藏身處 - 羅雀後街"
Hideout Hash = 62635
倉庫 = { Hash=3230065491, X=265, Y=227, Rot=0, Flip=0, Var=0 }
公會倉庫 = { Hash=139228481, X=340, Y=231, Rot=15326, Flip=0, Var=0 }
傳送點 = { Hash=1224707366, X=298, Y=385, Rot=22179, Flip=0, Var=1 }
工藝台 = { Hash=2059629901, X=308, Y=288, Rot=32768, Flip=0, Var=4 }
黃金地球儀 = { Hash=2306038834, X=298, Y=227, Rot=0, Flip=0, Var=0 }
娜瓦莉 = { Hash=693228958, X=322, Y=260, Rot=32768, Flip=0, Var=0 }
埃哈 = { Hash=2684274993, X=325, Y=191, Rot=34826, Flip=0, Var=0 }
艾瓦 = { Hash=2115859440, X=265, Y=207, Rot=16384, Flip=0, Var=0 }
赫蓮娜 = { Hash=845403974, X=314, Y=238, Rot=47093, Flip=0, Var=0 }';
my $regex = qr/^(.*?) = { Hash=(?P<hash>\d*), X=(?P<x>\d*), Y=(?P<y>\d*), Rot=(?P<rot>\d*), Flip=(?P<flip>\d*), Var=(?P<var>\d*) }/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html