• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

[DEV] RexEx Längenbeschränkung?

MiK

Geoguru
Hallo Entwickler,

beim Anpassen der RegEx für die LongDescription ist mir wieder aufgefallen, dass die PC-Exe aussteigt, wenn die RegEx eine bestimmte Länge überschreitet. Die Java-Version hat kein Problem damit.

Hat jemand eine Idee, woran das liegt und wie man das evtl. umgehen könnte?
 

salzkammergut

Geomaster
Ist es die Länge des RegEx oder eventuell die durch die Analyse des RegEx entstehende Rekursion (=Stackplatz)?

salzkammergut
 
OP
MiK

MiK

Geoguru
Es ist die Länge der RegEx. Um diese eindeutiger zu machen, habe ich sie hinten verlängert. Ab einer bestimmten Länge (erkannter Teil im Testcache war der gleiche) stürzte CW ab. Als ich die RegEx dann vorne gekürzt habe, konnte ich sie hinten länger machen.
 
OP
MiK

MiK

Geoguru
Also es ist schon ein Stack-Overflow:
Code:
java.lang.StackOverflowError
        at com.stevesoft.ewe_pat.wrap.StringWrap.charAt(StringWrap.java:20)
        at com.stevesoft.ewe_pat.oneChar.matchInternal(oneChar.java:37)
        at com.stevesoft.ewe_pat.FastMulti.matchInternal(FastMulti.java:85)
        at com.stevesoft.ewe_pat.Pattern.nextMatch(Pattern.java:58)
        at com.stevesoft.ewe_pat.oneChar.matchInternal(oneChar.java:39)
        at com.stevesoft.ewe_pat.Pattern.nextMatch(Pattern.java:58)
        at com.stevesoft.ewe_pat.oneChar.matchInternal(oneChar.java:39)
        at com.stevesoft.ewe_pat.Pattern.nextMatch(Pattern.java:58)
        at com.stevesoft.ewe_pat.oneChar.matchInternal(oneChar.java:39)
Aber es hängt nicht davon ab, was und wie viel matcht.

Den obigen Fehler bekomme ich, wenn ich in der spider.def z.B. longDescRex so ausschreibe:
Code:
longDescRex        = ContentBody_LongDescription">((?s).*?)<td\ valign="top"\ width="10%"> </td>\s*<td
 
Oben