behalx
Themenersteller
Fortgeschrittener (61 Beiträge)
Negatives Lookbehind
Folgendes markiert alle Funktionsaufrufe fett (z.B.: "System.out.println" = out, println, etc.).
$reg = '/(\.)(\w+)/';
$rep = '\$1\$2';
$code = preg_replace($reg, $rep, $code);
Das klappt soweit. Nun möchte ich den regulären Ausdruck in der Form einschränken, dass dies nicht geschehen soll, wenn am Anfang der Zeile "import " steht. Sollte eigentlich mit einem Negativen Lookbehind gehen, aber ich weiß nicht wie man dieses verwendet bzw. habe ein Beispiel gefunden, dass aber auf diesen Anwendungsfall nicht übertragbar ist. Folgendes z.B. klappt nicht:
$reg = '/(?<!import)(.*\.)(\w+)/';
$rep = '\$1\$3';
$code = preg_replace($reg, $rep, $code);
Wenn ich die zweite Version nehme werden keine Methoden mehr markiert. Weiß jmd. wie ich das implementieren kann?
http://unics.bplaced.net/
UFOMelkor
Student
Content Meister (350 Beiträge)
behalx
Fortgeschrittener (61 Beiträge)
Sorry. Hab mich verschrieben bzw. vorher schnell noch etwas geändert ($2 gelöscht) und vergessen $2 anstatt $3 zu schreiben. Daran liegt es nicht.
http://unics.bplaced.net/
gelöschter Benutzer
Eine Methode/Operation in Java definiert sich doch ganz anders als eine Import Regel.
Zb:
import java.io.*;
System.out.println("FooBar");
Die runden Klammern und der optionale Punkt am Anfang sind entscheidend.
behalx
Fortgeschrittener (61 Beiträge)
Vielleicht wird es an einem Beispiel deutlicher:
unics.bplaced.net/Sprachen/03_Java/05_Datenstrukturen.html
In ListsExamples.java gibt es ein "import java.util.*;" und "util" wird dort farblich markiert, obwohl dies nicht geschehen soll (oben habe ich der Einfachheit halber die Methoden fett markiert).
http://unics.bplaced.net/
gelöschter Benutzer
Es wird nicht nur das util markiert sonder auch das System.out.println(); und das ist auch keine Methode. Eigentlich werden alle Objekt Attribute als Methode markiert.
zB:
this.foo;
this.foo.bar;
Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.
Beitrag erstellen
EinloggenKostenlos registrieren