horse_99
Legacy Member
Hallo,
Ik moet voor mijn eindwerk een soort van decodering maken voor bestanden met ASCII karakters (gelegen tussen 31 en 127 decimaal, dus speciale tekens zoals ACK, DEL, CARRIAGE RETURN, e.a. komen er niet in voor). Ik maak hiervoor gebruik van reguliere expressies.
A.d.h.v. een beschrijving in XML worden patronen gegenereerd voor bepaalde onderdelen in een bestand. Die patronen kunnen enorm lang worden. Het langste patroon heeft een lengte van 22390 karakters. En nu komt het probleem: wanneer de decoder dit patroon moet vinden in uitgelezen gegevens, dan slaagt hij gewoon vast! Een patroon van 17634 karakters lang wordt dan weer probleemloos gevonden.
Ik heb al hier al 12 verschillende beschrijvingen gemaakt voor 12 verschillende types van bestanden en daarbij lukt de decodering probleemloos. Enkel bij dit ene bestand met dat lange patroon in slaagt de decoder compleet vast, dus was mijn vraag of er een maximum lengte staat op reguliere expressies?
MVG, horse_99.
Edit
Ik heb net dit gevonden:
Als dit waar is zit ik wel met een probleem, want het langste patroon bevat zo'n 12000 match groups.
Edit
Correctie: 1544 match groups in dat lange patroon
, maar dan is het nog boven de 99
. Maar dit blijkt eigenlijk geen probleem want het patroon van 17634 karakters heeft 1216 match groups en werkt wel.
Ik moet voor mijn eindwerk een soort van decodering maken voor bestanden met ASCII karakters (gelegen tussen 31 en 127 decimaal, dus speciale tekens zoals ACK, DEL, CARRIAGE RETURN, e.a. komen er niet in voor). Ik maak hiervoor gebruik van reguliere expressies.
A.d.h.v. een beschrijving in XML worden patronen gegenereerd voor bepaalde onderdelen in een bestand. Die patronen kunnen enorm lang worden. Het langste patroon heeft een lengte van 22390 karakters. En nu komt het probleem: wanneer de decoder dit patroon moet vinden in uitgelezen gegevens, dan slaagt hij gewoon vast! Een patroon van 17634 karakters lang wordt dan weer probleemloos gevonden.
Ik heb al hier al 12 verschillende beschrijvingen gemaakt voor 12 verschillende types van bestanden en daarbij lukt de decodering probleemloos. Enkel bij dit ene bestand met dat lange patroon in slaagt de decoder compleet vast, dus was mijn vraag of er een maximum lengte staat op reguliere expressies?
MVG, horse_99.
Edit
Ik heb net dit gevonden:
http://mail.python.org/pipermail/python-list/2006-January/321624.html zei:> I have a regular expression that is approximately 100k bytes. (It is
> basically a list of all known norwegian postal numbers and the
> corresponding place with | in between. I know this is not the intended
> use for regular expressions, but it should nonetheless work.
Err. No.
A while back it was established in this forum that re's per design can have
a maximum of 99 match groups ... I suspect that every "|" silently consumes
one match group.
Als dit waar is zit ik wel met een probleem, want het langste patroon bevat zo'n 12000 match groups.

Edit
Correctie: 1544 match groups in dat lange patroon
, maar dan is het nog boven de 99
. Maar dit blijkt eigenlijk geen probleem want het patroon van 17634 karakters heeft 1216 match groups en werkt wel.