Helló,
a tapasztalatotok kellene.
egy kollégám szerint használjak bármit, csak ne a libc regcomp / regexec -et.
Mi a véleményetek? Kollégám indoklása: "merszar", de nekem, teljesen alap szövegértelmezéshez eddig úgytünik tökéletes.
(REG_EXTENDED flaggel).
köszi,
- 5004 megtekintés
Hozzászólások
>> Kollégám indoklása: "merszar"
Kicsit bővebben?
- A hozzászóláshoz be kell jelentkezni
nincs bovebben, nem reszletezte valojaban.
olyat mondott, hogy 'ertelmetlenul sok memoriat zabal' es 'ertelmetlenul lassu'.
igy kb. nem tekintem ertelmes valasznak sem, hanem kerdeznek konkret tapasztalatokat.
nekem eddig tokeletesen jo. nem vettem eszre semmi 'zavaro' dolgot.
- A hozzászóláshoz be kell jelentkezni
Végülis attól függ, mire kell. A regexp egy univerzális cucc. Ha univerzális keresésre van szükséged, akkor az szerintem arra jó.
De ha például egy szövegben kell egy szót megkeresned, arra nem regexp-et használnék, mivel arra az strstr sokkal gyorsabb.
Tehát a feladat és a körülmények nagyban eldöntik, mit célszerű használni.
- A hozzászóláshoz be kell jelentkezni
teljesen egyet ertunk :)
en regexpkent akarom hasznalni :)
tipikus, hogy van egy c_str, amibol kell a 2. 7. es mondjuk a 8. group, amik mondjuk rendes regexp kifejezesek.
- A hozzászóláshoz be kell jelentkezni
A regexp-pel általában az a baj, hogy nagyon nehéz a kivételes esetek helyes kezelése. Egy rakás gyengébb minőségű program van, ami valami regexp-es megoldásnál hasal el egy olyan bemenetre, amire a program készítője nem számított (de a specifikáció szerint értelmes lenne).
Sokkal jobb az adatok formátumát eleve úgy megtervezni, hogy a szöveges ábrázolásból egyértelmű módon valami struktúrává lehet alakítani (xml, csv, java property file, bármi, csak pontosan legyen specifikálva benne a karakter kódolás és az eszképelés mikéntje). És utána a struktúrán lekérdezni az n. elemet immáron egyszerű címzéssel.
- A hozzászóláshoz be kell jelentkezni
Ha eltekintunk attol hogy pl. Purify uninitialized memory read hibakat jelez benne hasznalat kozben, akkor lehet hasznalhato de en is inkabb tavol maradnek tole :)
- A hozzászóláshoz be kell jelentkezni
de ezt AIX -en, vagy hol? Linuxon?
Jelenleg nekem csak az OSX + Linux a cel ( meg nyilvan a BSD ).
- A hozzászóláshoz be kell jelentkezni
Linux.
- A hozzászóláshoz be kell jelentkezni
nagyon koszonom, megnezem!
- A hozzászóláshoz be kell jelentkezni
mi lenne, ha PCRE-t tennel bele?
- A hozzászóláshoz be kell jelentkezni
nincs igazan jo okom azt mondani, hogy nem.
megnezem, a libc mellett az szol, hogy tenyleg csak 1 header es 0 lib.
- A hozzászóláshoz be kell jelentkezni
A GNU grepben vannak arra utaló dolgok, hogy tényleg sok memóriát zabál (rlimit-et állít be a grep). Ha nem kell szigorú POSIX, akkor használj RE2-t, sokan mondták, hogy az a leggyorsabb, bár az C++. Amúgy a a komplexitásban a TRE sem rossz, bár kisebb illesztéseknél van egy kis overhead, de jól skálázódik.
- A hozzászóláshoz be kell jelentkezni