Du bist hier: Seitenreport    Forum    Web-Entwicklung    PHP & MySQL    Negatives Lookbehind

Negatives Lookbehind

Verfasst am: 30. 06. 2011 [13:17]
behalx
Dabei seit: 30.09.2010
Themenersteller

52 Beiträge
Beitrag hilfreich?

Folgendes markiert alle Funktionsaufrufe fett (z.B.: "System.out.println" = <b>out</b>, <b>println</b>, etc.).

PHP
$reg = '/(\.)(\w+)/';
$rep = '$1<b>$2</b>';
$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:

PHP
$reg = '/(?<!import)(.*\.)(\w+)/';
$rep = '$1<b>$3</b>';
$code = preg_replace($reg, $rep, $code);


Wenn ich die zweite Version nehme werden keine Methoden mehr markiert. Weiß jmd. wie ich das implementieren kann?




[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 30.06.2011 um 13:19.]

 
Verfasst am: 30. 06. 2011 [22:03]
UFOMelkor
Dabei seit: 20.10.2009

348 Beiträge
Beitrag hilfreich?

Hab jetzt nur kurz drüber geschaut, aber versuch doch einmal $1<b>$2</b> anstelle von $1<b>$3</b>. Du hast ja schließlich auch nur zwei Subpattern, der lookbehind zählt nicht mit.

 
Verfasst am: 01. 07. 2011 [04:05]
behalx
Dabei seit: 30.09.2010
Themenersteller

52 Beiträge
Beitrag hilfreich?

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.

 
Verfasst am: 01. 07. 2011 [07:53]
Ultima
Dabei seit: 09.07.2010

759 Beiträge
Beitrag hilfreich?

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.

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 01.07.2011 um 07:53.]

 
Verfasst am: 01. 07. 2011 [10:52]
behalx
Dabei seit: 30.09.2010
Themenersteller

52 Beiträge
Beitrag hilfreich?

Vielleicht wird es an einem Beispiel deutlicher:

http://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).

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 01.07.2011 um 10:52.]

 
Verfasst am: 01. 07. 2011 [12:02]
Ultima
Dabei seit: 09.07.2010

759 Beiträge
Beitrag hilfreich?

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;

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 01.07.2011 um 12:18.]

 




Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:



9 Mitglieder waren innerhalb der letzten 15 Minuten online (53 heute gesamt):
alphamerisch, Boxerworld, ElkeTrautmann, eschlbeck, klarsteb, Monchi, Ostseebrise, romacron, tanka1

Administratoren und Moderatoren:
[keine]

Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Partnerprogramm

12% Lifetime Provision auf alle Buchungen von Dir geworbener Mitglieder sowie 0,50 € für jede Registrierung. Eines der besten deutschen Partnerprogramme laut den appCharts von 100partnerprogramme.de. Nimm jetzt teil am Seitenreport Partnerprogramm und verdiene gutes Geld dabei!

* = Partnerlinks