Jörg Peschke: Reguläre Ausdrücke: ?-Quantifier unter IE5.0

Beitrag lesen

Hallo,

das, was dort gesagt wurde - nämlich das

funde = text.match(/#START#.*?#ENDE#/g);

.*? erst mal weniog sinnvoll ist in JS-regexp, würde ich aber vermutlich unterschreiben.

Ich will aus einem Text der form
text = "#START# text 1 #ENDE# etz irgendwas anderes #START# text 2 #ENDE# nochmal was";

am Schluss das heraushaben (in Form eines Arrays):
("#START# text 1 #ENDE#", "#START# text 2 #ENDE#")

wenn ich ein gieriges Suchmuster verwende, also:
text.match(/#START#.*#ENDE#/g);
kriege ich:
"#START text1 #ENDE# etz irgendwas anderes #START# text 2 #ENDE#";

Deswegen brauch ich das ?, damits funktioniert.

Ich habe jetzt die folgende Lösung gefunden:
   var tokens = text.split("#START#");
   var result = new Array();
   for (var i = 0; i <tokens.length; i++) {
      var sub = tokens[i].match(/.+#ENDE#/);
      if (sub) {result[result.length] = "#START#"+sub;}
    }

Das funktioniert, ich bekomme in result das, was ich haben will.
Aber ob das die eleganteste Lösung ist, weiss ich nicht.

nur,wie gesagt, das ? will er nicht.

was willst du denn damit, an dieser stelle?

gruß,
wahsaga