Maximální délka řetězce pro regexp výrazy?
- ic
- Člen | 430
dostal jsem se k téhle chybě:
Backtrack limit was exhausted (pattern: ~<něco napevno>(.+)<prostředek>(.+)<konec>~i)
kterou mi vypisuje String::match
na dlouhém řetězci… pouze
při délce při délce 2093 a více znaků !
pomáhá na to rozdělení práce mezi více regulárních výrazů:
~<něco napevno>(.+)<prostředek>
a
~<prostředek>(.+)<konec>~
čímž délku
nepřekročím, ale říkám si…
Nebylo by pro výkon aplikace lepší to mít v jednom kuse? Dá se nějak ta maximální délka výsledného řetězce nastavit? Mám nechat takhle ve dvou dílech, nebo je na to ještě jiné řešení?
- kravčo
- Člen | 721
Podľa neúplného popisu reguláru máš len dve časti, ktoré zachytávaš, tretiu teda zachytávaš možno zbytočne, každopádne to asi ten backtrack limit neovplyvní…
kravčo napsal(a):
MožnoUrčite by pomohlo, keby si napísal ako presne ten regulár vyzerá. …
Bez toho ti nemám ako ďalej poradiť…