Regulärer Ausdruck gesucht!

Alles, was Perl betrifft, kann hier besprochen werden.

Regulärer Ausdruck gesucht!

Postby Sosum » 15. April 2004 15:53

Hallo Leute,

ich suche seit vorgestern *verzweifelt* nach einem Regulärem Ausdruck, der aus (A) (B)* extrahiert. Es ist eine Art kleiner XML Parser:
Gegeben ist z.B:
Code: Select all
(A) <vbutton name="refreshVBTTN" onClick="" value="Liste auffrischen">
---
(B)1 name="refreshVBTTN"
(B)2 onClick=""
(B)3 value="Liste auffrischen"


Die Skizzierung meiner derzeitiger Lösung erspare ich mir, weil ich mich derart Schäme. Wichtig ist, dass zwischen den Anführungszeichen wiederum beliebige Zeichen vorkommen können, also auch Leerzeichen (aber natürlich keine Anführungszeichen.

Bitte schickt mir keine Links auf externe XML-Parser, da diese oftmals mit Funktionen überladen sind, die ich nicht brauche und ich die Serverlast gering halten will.

Looking forward,
Aron
Sosum
 
Posts: 24
Joined: 08. September 2003 23:08

Postby daxim » 06. June 2004 02:31

Code: Select all
$_   = '<vbutton name="refreshVBTTN" onClick="" value="Liste auffrischen">';

my @b   = /
   \s   # das erste whitespace, d.h. das space nach <vbutton
   (   # start capture
   .*?="   # alles bis zum nächsten =", z.B. name="
   .*?"   # alles bis zum nächsten ", z.B. refreshVBTTN"
   )   # end capture
   /gx;   # global, d.h. capture mehrfach

print Dumper @b; # enthält jetzt eine liste mit den captures
# $VAR1 = 'name="refreshVBTTN"';
# $VAR2 = 'onClick=""';
# $VAR3 = 'value="Liste auffrischen"';
daxim
 
Posts: 53
Joined: 04. June 2004 20:45


Return to Perl

Who is online

Users browsing this forum: No registered users and 2 guests