PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl-Regex, sed etc.



Thomas Engelke
21-11-2003, 15:59
Ein String in einer Datei hat das folgende Format:


<p class=ScreenGrafik style='margin-right:113.35pt'><!--[if gte vml 1]><v:shape
id="_x0000_i1026" type="#_x0000_t75" style='width:4in;height:225pt' o:ole="">
<v:imagedata src="./Inv_Erfassung_v20-Dateien/image003.wmz" o:title=""/>
</v:shape><![endif]--><![if !vml]><img width=384 height=300
src="./Inv_Erfassung_v20-Dateien/image004.gif" v:shapes="_x0000_i1026"><![endif]><!--[if gte mso 9]><xml>
<o:OLEObject Type="Embed" ProgID="SnapGrafx" ShapeID="_x0000_i1026"
DrawAspect="Content" ObjectID="_1130932421">
</o:OLEObject>
</xml><![endif]--></p>

Im ersten Pass habe ich versucht, mittels type (ja, Windows) und sed (GNU-Version aus Cygwin) sowie einer Pipe den Input folgendermaßen zu verändern:

type datei|sed.exe "s/<!--\[if gte vml 1\]>[\s.]*\?<!\[if !vml\]>//g"

Die RegEx scheint mir korrekt zu sein. Spannenderweise wird durch diese RegEx nichts entfernt. Es ist mir ein wenig schleierhaft, wo der Fehler liegen könnte. Kann mich mal bitte jemand in die richtige Richtung schubsen? Es sollen die fettgedruckten Teile raus. Ein zweiter Pass steht danach an, der die Italic-Teile rausschneiden soll, aber der ist z.Z. nicht ganz so wichtig.

AD!

Badsteve
21-11-2003, 16:14
welche Fettgedruckten?

Steve

Exces
14-12-2003, 21:47
Wie wäre es mit

$string =~ s/<!--\[if gte vml 1\]>.,\n<!\[if !vml\]>//mg;