Thread Auslesen und Parsen einer Datei (23 answers)
Opened by Ando at 2009-05-04 19:40

Linuxer
 2009-05-04 21:01
#121167 #121167
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Nein, die Modifier werden direkt aneinander geschrieben; also:

Code: (dl )
1
2
3
# beispiele
s/bla/blub/is;
s/bli/blob/igs;


ich hab mal den code der while schleife zusammen gefasst. so müsste er die gleiche aufgabe erledigen ohne mehrmalig die gleiche Regex zu bauen und zu verarbeiten (keine Gewähr, bei meinem Test sah das Ergebnis gut aus ;) ):

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    # xml-tags suchen
    while ( my ( $tagName ) = $xml =~ /<([a-zA-Z0-9\-_]+)>/ ) {
                
        # versuche ein tag mit schliessendem tag zu entfernen, 
        # speichere dabei den gefundenen tag-inhalt im hash ab
        if ( $xml =~ s/<$tagName>(.*?)<\/$tagName>//is ) {
            $xml{ lc($tagName) } = $1;
        }
        # ansonsten loesche startendes tag (da kein ende-tag vorhanden)
        else {
            $xml =~ s/<$tagName>//;
        }
    }
    


edit1: Zeile 06: (.+?) durch (.*?) ersetzt!
edit2: Zeile 11: s/$tagName//; duch s/<$tagName>//; ersetzt!
edit3: edits editiert
Last edited: 2009-05-04 21:43:17 +0200 (CEST)
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!

View full thread Auslesen und Parsen einer Datei