Weiter mit dem Beitrag bei Regular expression to allow a set of characters and disallow othersRegex gibt Fehler
Weiß jemand, warum die unten kommen würde?
Ich erhalte die unten Fehlermeldung, wenn ich einen regulären Ausdruck als erstellen:
[^@*–’”“\r\nœçsÇSgGšcrŠRNEŽDTCnežuUIti—¿„”]+
und geben Sie eine dieser eingeschränkten Zeichen in das Eingabefeld
java.lang.ArrayIndexOutOfBoundsException
at org.apache.regexp.RECompiler$RERange.delete(RECompiler.java:1326)
at org.apache.regexp.RECompiler$RERange.remove(RECompiler.java:1417)
at org.apache.regexp.RECompiler$RERange.include(RECompiler.java:1459)
at org.apache.regexp.RECompiler$RERange.include(RECompiler.java:1470)
at org.apache.regexp.RECompiler.characterClass(RECompiler.java:699)
at org.apache.regexp.RECompiler.terminal(RECompiler.java:863)
at org.apache.regexp.RECompiler.closure(RECompiler.java:942)
at org.apache.regexp.RECompiler.branch(RECompiler.java:1151)
at org.apache.regexp.RECompiler.expr(RECompiler.java:1203)
at org.apache.regexp.RECompiler.compile(RECompiler.java:1281)
at org.apache.regexp.RE.(RE.java:495)
at org.apache.regexp.RE.(RE.java:480)
aber dieser Ausdruck funktioniert völlig in Ordnung
[^@*–’”“\r\nœçsÇSgGšcrŠRN]+
Auch
[^@*–’”“\r\nœçsÇSgGšcrŠR„”]+
funktioniert, aber
[^@*–’”“\r\nœçsÇSgGšcrŠRNE]+
funktioniert nicht und gibt den obigen Fehler.
Gibt es eine Begrenzung für die Anzahl der Zeichen, die wie oben verboten werden können?
Grüße, Udit Sud
Klingt wie ein Codierungsproblem für mich, aber Java ist nicht mein Ding – Greg
Wenn es Ihnen besser geht, funktioniert es mit der .NET Regex-Engine. Ich vermute, dass es sich um einen Fehler in dieser bestimmten Java Regex-Implementierung handelt. –
@Udit - Was passiert, wenn Sie das "E" weglassen? –