A crude one ($part,$unit,$x,$y,$xlen,$ylen) = ($1,$2,$3,length($4),length($5)) if ($string =~ /(^\S{5})\.(\d{2})([+-])(\d+)\.(\d+)$/);
-----Original Message----- From: Dan Fish [mailto:d...@ninemoons.com] Sent: 19 May 2009 14:18 To: beginners@perl.org Subject: Simple regex question Simple question for the regEXperts out there... I have a string that is always in the format: aaaaa.nn+x.y a is always 5 chars n can be 1 or 2 digits x can be +/- (with sign), 1-4 digits y is always positive (no sign), 1-4 digits Some examples: A123C.11+002.001 FC32G.2-1.0 12B15.01+2145.15 I need all 4 pieces and the length of x & y. The following works: my $id= "A123C.11+002.001"; my @tmp = split(/[\.+-]/,$id); my $part = $tmp[0]; my $unit = $tmp[1]; my $x = $tmp[2]; my $y = $tmp[3]; my $xlen = length $tmp[2]; my $ylen = length $tmp[3]; but in my quest for understanding regex, I'm always looking for more elegant (obfuscated :-) code... Anybody have a good one-liner for this? my ($part,$unit,$x,$y,$xlen,$ylen) = /* Some obfuscated code here.. */ Thanks! -Dan --- d...@mapson.ninemoons.com (To reply via email, remove 'reverse(nospam)' in address. Spambots are getting waaaay too smart nowadays...:-) -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/ This email is from the Press Association. For more information, see www.pressassociation.com. This email may contain confidential information. Only the addressee is permitted to read, copy, distribute or otherwise use this email or any attachments. If you have received it in error, please contact the sender immediately. Any opinion expressed in this email is personal to the sender and may not reflect the opinion of the Press Association. Any email reply to this address may be subject to interception or monitoring for operational reasons or for lawful business practices. -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/