Thread Hilfe zu Regex
(8 answers)
Opened by rooney10 at 2011-03-22 16:43
Hi,
was heißt "Funktioniert aber nicht richtig..."? Gibt es Warnungen oder Fehlermeldungen? Ein Pattern /\\includegraphics.*\{(.+?)\}/gc) finde ich suboptimal, denn es kann auch auf (mögliche) Befehle wie \includegraphicsExtended{args} zutreffen (was ja ein selbst definiertes Kommando sein könnte). Du kannst den Teilausdruck mit den eckigen Klammern optional machen, in dem Du ihn mit (?: ausdruck )? klammerst; Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #! /usr/bin/perl use strict; use warnings; my $text = do { local $/; <DATA> }; my @matches; while ( $text =~ m<\\includegraphics(?:\[.*?\])?\{(.+?)\}>gc ) { push @matches, $1; } { local $\ = local $, = $/; print @matches; } __DATA__ Schau mal dies: \includegraphics{bild1.jpg} Oder dieses: \includegraphics[2,"second"]{bild2.jpg} Aber nicht das hier: \includegraphicsNew{no_pic.jpg} 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! |