Thread Conditional RegExp
(8 answers)
Opened by PHilbs at 2010-02-20 20:44
So kann man das auch machen:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @list=( 'hund:bello,12,w', 'katze:mini,m', 'hund:lessi,8,m', 'katze:kassandra,w', ); for my $line (@list) { $line=~/^(?<t>katze|hund):(?<n>[^,]+),(?:(?<g>\d+),)?(?<s>w|m)$/; $line={%+}; } print Dumper(\@list); das Funktioniert, weil "\d+," an der Stelle im String einmalig ist, und es zu keiner Verwechselung beim Match kommen kann. Last edited: 2010-02-20 22:56:06 +0100 (CET) |