# Regular Expression gesucht: Zeichen nur finden, wenn ihm kein anderes voransteht



## equestenebrarum (8. Jun 2012)

Hallo,

ich bin auf der Suche nach einer regular Expression, welche ein bestimmtes Zeichen nur dann findet, wenn diesem kein anderes, definiertes voransteht. Hintergrund: Doppelpunkte werden durch ein voranstehendes Prozent-Zeichen maskiert, da sie als Trennzeichen innerhalb eines Strings dienen.

Dieser String soll nun um die Doppelpunkte gesplittet werden. Etwa so:


```
String s = "bingo:bongo:b%:ungo";
result = s.split("(?<!%):");
for(String sub : result) System.out.print(sub + " "); System.out.println();
```

Das gewünschte Ergebnis-Array soll dann im Idealfall bingo, bongo, b:ungo enthalten. Ist die Ersetzung (in diesem Falle Löschung) von % in diesem Beispiel möglich?

Ideen?

Vielen Dank im Voraus und beste Grüße!


----------



## SlaterB (8. Jun 2012)

das Split klappt doch anscheinend ganz gut,
gleichzeitig noch zu ersetzen kannst du kaum erwarten,

das ist keine Grundfunktion von RegEx, wie das Splitten ja auch nicht, sondern alles eigene Methoden: split(), replace() usw.,
es gibt für deinen Fall keine fertige Kombination, baue dir selber eine ensprechende Methode, die du dann aufrufen kannst


----------



## equestenebrarum (8. Jun 2012)

Ok, danke für deine Antwort. Ich hatte gehofft, mir die anschließende for-Schleife ersparen zu können, aber das geht wohl dann nicht. Schönen Gruß!


----------

