[PERL/CGI] Fout bij regexpressie met teveel data *

Pagina: 1
Acties:

  • Mir
  • Registratie: Maart 2001
  • Niet online
Hoi,

ik heb een regexpressie:
code:
1
$fileContent =~ s/<div\s+id="?WebEdit"?\s+comment="([^"]+)"[^>]*?>((?:(?:<div[^>]*?>[\d\D]*?<\/div>)|[\d\D]+?)*?)<\/div>/<!-- #BeginEditable "\1" -->\2<!-- #EndEditable -->/sig;


Die doet het prima, maar op het moment dat er teveel data in zit ( ongeveer > 8000 bytes) dan gaat hij over z'n nek.

Is dit een CGI probleem of iets anders (server instelling?)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:26

Creepy

Tactical Espionage Splatterer

CGI???? Ow, je bent in Perl bezig zo te zien :Y) -> Titelfix

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Volgens mij is die regex veel te complex voor wat hij eigenlijk doet. Bijvoorbeeld: waarom gebruik je [\d\D] als een punt precies hetzelfde betekent; waarom match je divjes, als een .* ook voldoet?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Mir
  • Registratie: Maart 2001
  • Niet online
Om heel eerlijk te zijn: het komt uit een CMS, geen eigen applicatie.
Dus waarom er voor een bepaalde methode gekozen is weten we niet.

Maar het liefst willen we niets veranderen aan de sourcecode ivm uptdates.

Ik vroeg me daarom ook af: Is het een server instelling die hier een oplossing kan bieden?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

't Lijkt me dat je daarvoor dan toch bij de developer van het CMS terecht moet. Nogal een vreemde situatie dat je dit hier moet komen vragen als je 't niet zelf ontwikkeld hebt, toch? ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Mir
  • Registratie: Maart 2001
  • Niet online
Mijn vraag is gewoon: zit het in onze server instellingen of is de code gewoon fout?

Want als je <8k data erin stopt gaat het wel goed.. dus lijkt mij niet dat de code 100% is maar dat het een soort van PERL bug is..?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

nou 't is een inefficiente regular expression, maar als je daar niet aan wilt zitten, dan zou ik je doorverwijzen naar de developer.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Mir
  • Registratie: Maart 2001
  • Niet online
Hoe zou de expressie wel moeten zijn?

Want we kunnen natuurlijk wel een note aanmaken dat bij elke nieuwe update dit veranderd moet worden.
Pagina: 1