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

Gast Christian
 2014-03-05 08:56
#173844 #173844
Hallo Linuxer,

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, ''


....ich brüte gerade über Deinen Code! Aber irgendwo im map-Befehl ist die Syntax verdreht. Zumindest meldet mir das mein perl! Sorry, aber ich erkenne ihn nicht! Das mag daran liegen, dass ich den Ausdruck noch nicht verstanden habe ;-)

christian
Last edited: 2014-03-05 09:05:11 +0100 (CET)

View full thread regexp - komme nicht weiter