Thread Conditional RegExp
(8 answers)
Opened by PHilbs at 2010-02-20 20:44
Hallo,
wenn Du unbedingt conditional expressions verwenden möchtest, ist das hier eine Lösungsmöglichkeit; Code: (dl
)
1 #!/usr/bin/env perl Ausgabe: Code: (dl
)
1 $VAR1 = { Bei den conditional expressions kannst Du als condition einen bereits gematchten Ausdruck verwenden. Allerdings kann man hier nur feststellen, OB der Ausdruck gematcht hat, nicht dessen Inhalt (das geht wiederum mit code evaluation expressions, siehe http://perldoc.perl.org/perlretut.html#A-bit-of-magic:-executing-Perl-code-in-a-regular-expression, aber das wird als experimentell eingestuft). Also capturen wir zusätzlich entweder "hund" oder "katze" in $1 bzw. $2 und prüfen hierauf. Eine weitere Alternative wäre natürlich, die Strings so umzustellen, dass das Gewicht als letztes Element steht (dann würde auch einfaches split reichen). Grüße vifo Edit: siehe gerade, Murphy war mit der Lösung ein bisschen schneller, aber doppelt hält besser :) Last edited: 2010-02-20 22:22:15 +0100 (CET) |