Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich bin auf der Suche nach einem regulären Ausdruck, der es mir ermöglicht eine beliebige Zeichenfolge mit Ausnahme einiger expliziten Wörter zu finden.
Bin ich der einzige, der das Beispiel in keiner Weise aussagekräftig findet?
Und ich frage mich, ob reguläre Ausdrücke hier überhaupt sinnvoll sind, oder ob es nicht gleich besser wäre, über den AST zu gehen... aber da vermutlich nicht mal die NSA weiß, um was es eigentlich geht, kann man diesbzgl keinen Rat geben.
Ich verstehe gerade auch nicht wirklich, was hier gemeint ist.
Was genau soll gefunden werden? Einer der drei Ausdrücke, oder genau diese drei Zeilen in Folge?
Was genau soll NICHT gefunden werden? Einer der zwei Ausdrücke, oder genau diese zwei Zeilen in Folge?
Bitte beherzige Punkt eins deiner Signatur...
Du solltest deine Matching-Logik umdrehen, und einen Ausdruck verwerfen, wenn ein bestimmtes Token gefunden wird. Dann sparst du dir doch diese ganze Invertierung.
Andernfalls würde ein Ausdruck wie dieser hier funktionieren (bezugnehmend auf deine 2 Beispiele "class etst" und "return 0"):
Code:
import java.util.regex.Pattern;
public class X {
public static void main(String[] args) {
String pattern = "\\Z*(?!return 0|class test).*";
System.out.println(Pattern.matches(pattern, "return 0" ));
}
}
Output: false
Vielleicht ist es auch deshalb nicht schön, weil schlicht Beispiele in einen Regex gepackt wurden und keiner versteht, warum die einen Beispiele gehen sollen und die anderen nicht usw...
mib hat ja schon AST angesprochen. In die Richtung, dass etwas semantisches als Frage dahinter steht hab ich auch schon gedacht.. aber so gibts ja wirklich nur wilde Vermutungen..