Felix Riesterer: lookahaed wie bei PHP

Beitrag lesen

Lieber Steffen,

naja, dann vielleicht so.

/m[^m]*$/


>   
> Es wird doch das letzte "m" in der Zeichenkette gesucht, oder?  
  
Nein! Die Vorgabe war:  

> für alle 'm' denen kein weiteres 'm' folgt.  
  
Und genau das kann man mit m[^m] umschreiben. Das war nicht falsch, ist aber nur in diesem Zusammenhang so lösbar.  
  

> Mir ist die "!?" Syntax noch nicht bekannt.  

Die gibt es auch so nicht. :-) Das Ausrufezeichen negiert das Folgende (sprich "!m" heißt "nicht-M"), das Fragezeichen \_davor\_ innerhalb einer neuen Klammer sucht vorwärtsgerichtet, ob es auch ja nicht auftaucht. /(?!m)/ Das ist die Schreibweise für negative lookahead (negatives Vorausschauen).  
  
/m(?!inimal)/ matched "minimahl" und "minimarkt", da die folgende Zeichenkette nach dem ersten "m" \_nicht\_ "inimal" lautet, denn die würde dem lookahead passen, was sie aber wegen des Ausrufezeichens nicht darf.  
  
Ich empfehle Dir das (englischsprachige) [Tutorial zu Regexen](http://www.regular-expressions.info/) zum weiteren Nachlesen.  
  
Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),  
  
Felix Riesterer.