gruss schildi, hallo Jörg,
.. da benutz ich grad auch den "mach-mich-ungierig"-operator, also das ?.
und da ist es durchaus sinnvoll, bzw. notwendig den zu verwenden.
oder hast du da nen anderen vorschlag?
@schildi
das hat ja auch niemand in abrede gestellt. Jörg fragt ja nach alternativen
fuer nicht gierige suchmuster, die ohne den dafuer vorgesehene "?" quantifier
auskommen, da man im javascript-bereich immer noch auf RegExp engines stoesst,
die ebendiesen nicht unterstuetzen.
dein zuletzt gegebenes bsp. aufgreifend koennte
eine solche loesung folgendermassen aussehen:
~~~javascript
var str = '<a href="link01.html">link01.html</a>\n' + // matched;
'<a href="about:blank"><about:blank</a>\n' + // not matched;
'<a href="link02.html">link02.html</a>\n' + // matched;
'<a href="about:blank">about:blank</a>'; // matched;
var regX = /<a[^>]>[^<]</a>/gi;
var arr = str.match(regX);
alert(arr.length + "\n\n" + arr.join("\n"));
der ausdruck
`/<a[^>]*>[^<]*<\/a>/gi`{:.language-javascript} liest sich dann so:
/
<a suche die zeichenfolge "<a"
[^>]\* dann alle zeichen, die nicht ">" sind
> bis zum ersten vorkommenden ">"
[^<]\* dem nur nicht-"<"-zeichen nachfolgen
<\/a> bis die sequenz "</a>" gefunden wird
/gi der ausdruck gilt dann fuer den gesamten string
[g(lobal)-flag], wobei die gross/kleinschreibung
ignoriert werden darf [i(gnore case)]-flag
der ausdruck kann aber leider nur dann anwendung finden,
wenn sicher ist, dass keine "<"-zeichen innerhalb der
anker-/link-elemente stehen (siehe obiges bsp.).
by(t)e by(t)e - peterS. - pseliger@gmx.net
--
"Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]