Thread strings in array löschen
(19 answers)
Opened by Iggy86 at 2012-08-13 13:46
Einfacher Schnellschuß ohne Optimierung oder langes Grübeln, der auch Kommentare auf einer Zeile berücksichtigt.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #! /usr/bin/perl use strict; use warnings; my @data = ( 'eins', 'zwei /*', 'drei', 'vier */', 'fuenf /* bla */', 'sechs /* foo */ sieben', ); my $found = 0; for my $element ( @data ) { # full comment if ( $element =~ s{ /\* .*? \*/ }{}x ) { next; } # beginning of comment if ( $element =~ s{ /\* .*? }{}x ) { $found = 1; } # end of comment elsif ( $element =~ s{ .*? \*/ }{}x ) { $found = 0; } # lines between beginning and end of comment elsif ( 1 == $found ) { $element = undef; next; } } # undefinierte und leere Elemente werden entfernt @data = grep { defined $_ && 0 < length $_ } @data; use Data::Dumper; print Dumper \@data; Resultat: 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! |