Thread regexp - komme nicht weiter (14 answers)
Opened by christian at 2014-03-04 16:21

clms
 2014-03-04 17:23
#173827 #173827
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Guest christian
Mein Versuch liefert zwar schon den Inhalt der eckigen Klammern, aber ich kriege das Komma und das Leerzeichen dazwischen nicht weg, diese werden auch im Array gespeichert.
Code: (dl )
my $test="[Part1,Part2],[Part3],[Part4, Part5],[Part6]";; my @a=split(/\[([^\[]+)\]/, $test);

Hier eine Variante mit split:
Code (perl): (dl )
1
2
my $test="[Part1,Part2],[Part3],[Part4, Part5],[Part6]";
my @a=split(/(?<=\]),(?=\[)/,$test;

Sie splittet an jedem "],[" aber die eckigen Klammern gehören nicht zum Match-String sondern stehen in look-behind und look-ahead assertions, werden also anders als das Komma im Ergebnis belassen.

Diese Version sollte auch mit einzelnen eckigen Klammern im Eingabestring zurecht kommen, d.h. "[part[1],part[2]],[Part3]" würde in ""[part[1],part[2]]" und "[Part3]" gesplittet.

View full thread regexp - komme nicht weiter