Thema: Suche zurückgeben....

Hi,
habe gerade erst begonnen mich mit regulären Ausdrücken zu befassen und komme nicht ganz klar.
Ich will eine Zeichenfolge innerhalb eines Strings mit JavaScript auslesen.
Der auszulesende Teil ist von eckigen Klammern eingeschlossen [Wert] .

ich hatte das so versucht:
meinstring.search(/[(.+)]/);
alert(RegExp.$1);

leider bekomme ich so keinen Wert zurück.
Der Wert kann alle verfügbaren Zeichen haben, sowie eine Länge zwischen 1 und 5.

Ich könnte die Klammern natürlich auch einzeln suchen und dann den Wert mittels substring() auslesen, aber das ist ja nicht Sinn der Sache.

Vielen Dank im Voraus
der Metzger

Seit ich einen Computer habe kann ich Probleme lösen die ich ohne ihn nicht hatte!

2

Re: Suche zurückgeben....

N'abend,

nur mal so auf die Schnelle unter win2k durchgeguggt:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><script>
var a = 'ichbineinstring[undhabeeinenwert]ineckigenklammern';

//a.match(/[([^]]*)]/);    //ie6, nn7, opera6.05, moz1.2, phoenix0.4, opera7

//a.match(/[([^]]*)]/);     //ie6, nn7, opera6.05, moz1.2, phoenix0.4

//a.match(/[([^]]*)]/);     //ie6, nn7, opera6.05, nn4.78

//a.match(/[([^]]*)]/);      //ie6, nn7, opera6.05, nn4.78

alert(RegExp.$1);
</script>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Zwar sollte man annehmen dürfen, daß gewisse Regularien
das Setzen eines backslashs vor ein regex-Sonderzeichen
regeln, allerdings haben die browser verschiedene Auffassungen
davon, wann das zu geschehen hat.
Eine irgendwie geartete Systematik ist mir bisher nebulös,
ich muß mir das mal inner ruhigen Stunde genauer anschaun.

gruß

matho

Re: Suche zurückgeben....

thx - hat mir schon geholfen

der Metzger

Seit ich einen Computer habe kann ich Probleme lösen die ich ohne ihn nicht hatte!

Re: Suche zurückgeben....

So,
habe noch ein wenig studiert.
Das ich die reservierten Zeichen maskieren muss ist mir inzwischen aufgegangen *hätt ich auch selbst drauf kommen können*
was ich jedoch noch nicht ganz verstehe ist dei Suchmuster:

a.match(/[([^]]*)]/);   
wenn ich:
a.match(/[(.+)]/);
versuche komme ich (zumindest auf den ersten Blick) zum gleichen Ergebnis.

Wie interpretiere ich diesen Teil richtig?

([^]]*)
Das kann ich anhand SelfHTML leider nicht gut nachvollziehen.
Nochmals danke für die Mühe

der Metzger

Seit ich einen Computer habe kann ich Probleme lösen die ich ohne ihn nicht hatte!

5

Re: Suche zurückgeben....

high,

vielleicht wird so der Unterschied deutlich:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><script>
var a = 'ichbineinstring[undhabezwei][werte]ineckigenklammern';

m1=a.match(/[(.+)]/g);

alert(RegExp.$1);

m2=a.match(/[([^]]*)]/g);

alert(RegExp.$1);

alert(m1+'n'+m2);

</script>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Dieser Unterschied besteht natürlich auch, wenn Du kein globales matching durchführst.

gruß

matho

Re: Suche zurückgeben....

Hi,
also ich denke so langsam blick ich ein wenig durch - DANKE

der Metzger

Seit ich einen Computer habe kann ich Probleme lösen die ich ohne ihn nicht hatte!

7

Re: Suche zurückgeben....

Gern geschehn,

wenn Du Dich ein wenig mehr mit regulären Ausdrücken beschäftigen möchtest, experimentiere mal ein bißchen mit perl.
In javascript gibt's ein paar Besonderheiten, die das Lernen vielleicht erschweren könnten.
Ein gutes Beispiel war Deine gestrige Frage:
mir ist es bisher nicht so recht gelungen, die verschiedenen Schreibweisen eindeutig der jeweilig bestimmten offiziellen javascript-Version zuzuordnen.
Soetwas kann anfangs ziemlich verwirrend sein.
Und wenn ich Dir noch etwas empfehlen darf:
Lies alles, was Du von Jeffrey Friedl zwischen die Finger bekommen kannst.
Denn erstens weiß der Mann tatsächlich, wovon er spricht, und zwotens hat er einen guten Stil (sehr angenehm und oft sehr lustig zu lesen).

gruß

matho

Re: Suche zurückgeben....

Hi Matho,
das mit Jeffrey Friedl werde ich mir merken und auch gleich mal danach Ausschau halten.
Zu Perl habe ich im Moment keinen bezug, da ich Projektbezogen stark mit JavaScript konfrontiert bin.

Grüsse
der Metzger

PS. dank deiner Hilfe konnte ich mein aktuelles Problem sehr zufriedenstellend lösen
 
  <small>[ 12-12-2002, 08:10: Beitrag editiert von: Metzger ]</small>

Seit ich einen Computer habe kann ich Probleme lösen die ich ohne ihn nicht hatte!