Thread Regulärer Ausdruck der Inhalt zwischen "" zurückgibt
(6 answers)
Opened by Xertno at 2011-10-18 10:34
Regex ist nicht immer das Mittel der Wahl. In deinem Fall dürfte z. B. folgendes vorzuziehen sein:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 use strict; use warnings; my $txt = q(<StdViol sev="3" ln="59" cat="MISRA2004" hash="-1687940199" tool="c++test" rule="MISRA2004-14_7" locType="sr" lang="cpp" msg="Provide only one exit point in 'doMount' function" auth="fsdun" locStartln="59" locStartPos="4" locEndLn="59" locEndPos="5" locFile="/optstart/dut/src/action.c"/>); my @params = split '"', $txt; $params[0] =~ s/.*? //; pop @params; while (@params) { my $opt = shift @params; $opt =~ tr / =//d; my $value = shift @params; print "Option $opt hat Wert $value\n"; } In deiner Regex hättest du übrigens die vielen Wiederholungen leicht vermeiden können: Code (perl): (dl
)
my @paare = $txt =~ /(\w+?=".+?")/g; Gruß
GUIfreund |