Thread regexp - komme nicht weiter
(14 answers)
Opened by christian at 2014-03-04 16:21
Welche Variante meinst Du? Meine split()-Variante hat ja schon einen Kommentar? Reichte der nicht?
Ich vermute, dass Du auf die Nicht-split()-Variante geantwortet hast, aber die reine Regex-Variante meinst? Vorschlag (und erster Erklärungsversuch im Text): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 my $text = "[Part1,Part1_XX,Part2],[Part3,Part3_XX],[Part4, Part5],[Part6]"; # die folgenden Zeilen quasi von hinten nach vorne lesen: my @data = # fuer jeden Treffer wird der _XX-Teil entfernt und die Kommata bereinigt # map muss das Element selber wieder ausgeben; daher das $_ am Ende map { s/[^,]+_XX//g; s/^,|,$//g; s/,,/,/g; $_ } # suche nach Text in eckigen Klammern und fange ihn ein mit runden Klammern; # liefere alle Treffer als Liste ans map {} $text =~ m{\[([^\]]+)\]}g; print join "\n", @data, '' Doku-Tipp: perlretut perlrequick perlre edits: 2 Änderungen am 1. Regex im map... Last edited: 2014-03-04 18:03:33 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |