Regex nur entsprechen, wenn der Charakter nicht direkt vor dem gewünschten string

Ich versuche zu lösen diese CodingBat problem:

Gibt true zurück, wenn der übergebene string enthält einen Auftritt von "xyz" wobei das xyz ist nicht direkt Voraus, eine Periode (.). So "xxyz" zählt, sondern "x".xyz" nicht.

xyzThere("abcxyz") → true

xyzThere("abc".xyz") → false

xyzThere("xyz.abc") → true

Ich versuche, diese zu lösen mit einem regex, aber ich bin mir nicht sicher, wie Sie zu behandeln where the xyz is not directly preceeded by a period Anforderung.

Meine Lösung für das problem ohne die Einschränkung ist diese:

public boolean xyzThere(String str) {
    return str.matches(".*xyz.*");
}

Irgendeine Idee, wie man mit den Sprach-Einschränkung mit einer regex?

InformationsquelleAutor bob | 2012-11-18
Schreibe einen Kommentar