Hallo,
meine Frage habe ich ja eigentlich schon gestellt, aber eigentlich ist das nicht meine Frage sondern mein Problem.
Ich möchte sich wiederholende Zeichen in einem Text finden. Dabei soll das Zeichen egal sein.
Ich habe folgendes geschrieben:
Wie man wohl unschwer erkennen kann, benutze ich das Jakarte RegExp Packet der Apache Group.
Wenn ich den Code jedoch ausführen will, erhalte ich folgende Exception:
Ohne das + hinter dem \\1 (Backreferenz auf den ersten ()-Block) funktioniert das ganze wieder.
Kennt jemand dieses Problem bzw. kann er mir helfen?
In Perl funktioniert dieser Reguläre Ausdruck ohne Probleme.
Mit dem Java RegExp bin ich leider nicht so vertraut
Und wenn ich nach diesem Problem suche, dann bekomme ich nur ein paar Ergebnisse und ddas ist meistens nur Quellcode der RECompiler.java.
thx4help
ViperT[/code]
meine Frage habe ich ja eigentlich schon gestellt, aber eigentlich ist das nicht meine Frage sondern mein Problem.
Ich möchte sich wiederholende Zeichen in einem Text finden. Dabei soll das Zeichen egal sein.
Ich habe folgendes geschrieben:
Code:
...
import org.apache.regexp.RE;
...
String regexp = "(.)\\1+";
RE r = new RE(regexp);
while(r.match(s.toString())) {
String wholeExpr = r.getParen(0);
}
Wie man wohl unschwer erkennen kann, benutze ich das Jakarte RegExp Packet der Apache Group.
Wenn ich den Code jedoch ausführen will, erhalte ich folgende Exception:
Code:
org.apache.regexp.RESyntaxException: Syntax error: Closure operand can't be nullable
at org.apache.regexp.RECompiler.syntaxError(Unknown Source)
at org.apache.regexp.RECompiler.closure(Unknown Source)
at org.apache.regexp.RECompiler.branch(Unknown Source)
at org.apache.regexp.RECompiler.expr(Unknown Source)
at org.apache.regexp.RECompiler.compile(Unknown Source)
at org.apache.regexp.RE.<init>(Unknown Source)
at org.apache.regexp.RE.<init>(Unknown Source)
at de.hobby_coder.compression.Lauflaengencodierung.Ausführen(Lauflaengencodierung.java:54)
at de.hobby_coder.compression.TestLauflaengencodierung.main(TestLauflaengencodierung.java:28)
Ohne das + hinter dem \\1 (Backreferenz auf den ersten ()-Block) funktioniert das ganze wieder.
Kennt jemand dieses Problem bzw. kann er mir helfen?
In Perl funktioniert dieser Reguläre Ausdruck ohne Probleme.
Mit dem Java RegExp bin ich leider nicht so vertraut
Und wenn ich nach diesem Problem suche, dann bekomme ich nur ein paar Ergebnisse und ddas ist meistens nur Quellcode der RECompiler.java.
thx4help
ViperT[/code]