Thread Regulärer Ausdruck der Inhalt zwischen "" zurückgibt (6 answers)
Opened by Xertno at 2011-10-18 10:34

GUIfreund
 2011-10-18 16:57
#153308 #153308
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
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

View full thread Regulärer Ausdruck der Inhalt zwischen "" zurückgibt