seth_not@home: Regex Hilfe

Beitrag lesen

gudn tach!

<style type="text/css">
<!--
  @page { size: 21cm 29.7cm; margin: 2cm }
  P { margin-bottom: 0.21cm }
  H2 { margin-bottom: 0.21cm }
-->
</style>

Das habe ich in JavaScript mit folgendem Regex und vielen anderen versucht: text.replace(/<style[^>]*>[.\d\w\r\n]*/gi, 'asd');

der teil
  <style[^>]*>
matcht
  <style type="text/css">

und der teil
  [.\d\w\r\n]*
matcht den darauffolgenden zeilenumbruch.

Was mach ich falsch?

der punkt hat innerhalb einer zeichenklassendefinition seine literale bedeutung, d.h. er matcht tatsaechlich nur einen punkt.

Ich möchte gerne den gesamten Inhalt zwischen <style und </style> löschen.

eine moeglichkeit:
text.replace(/(<style[^>]*>)(?:.|[\r\n])*?(</style>)/gi, '$1asd$2');

im javascript-code, darf nun aber nirgends "</style>" vorkommen...

mit lookbehind- und lookahead-assertions waeren auch noch andere moeglichkeiten denkbar, aber javascript kennt afaik standardmaessig kein lookbehind.

prost
seth