java.lang.StackOverflowError beim Verwenden einer RegEx zum Parsen großer Strings

Dies ist mein Regex

((?:(?:'[^']*')|[^;])*)[;]

Es tokenizes ein string am Semikolon. Zum Beispiel,

Hello world; I am having a problem; using regex;

Ergebnis ist drei Saiten

Hello world
I am having a problem
using regex

Aber wenn ich mit einem großen Eingabe-string bekomme ich diesen Fehler

Exception in thread "main" java.lang.StackOverflowError
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$Loop.match(Pattern.java:4295)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4078)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3345)
at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$Loop.match(Pattern.java:4295)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)

Wie ist das verursacht und wie kann ich es lösen?

Kommentar zu dem Problem
Wie groß ist die Zeichenfolge, die Sie analysieren? Kommentarautor: NullUserException

InformationsquelleAutor der Frage Ali | 2011-09-22

Schreibe einen Kommentar