On Mon, 10 Dec 2001 20:14:55 +0100, Jonas Koch Bentzen
<ingen.emailadresse@eksempel.dk> wrote:
>> ... og hvis man endelig skal bruge regulære udtryk, så bør man glemme
>> ereg og vænne sig til at bruge preg_*, fx preg_replace.
>Arh, sikke noget fis! :)
Det er udelukkende af performancehensyn. Jeg var også mere hjemmevant
i POSIX-udtryk, men ereg var blot lidt af en blindgyde. .{1,255} er
ret sløvt, og ved {x,y} kan y ikke være højere end 255. Skal man
arbejde hårdt med regulære udtryk, kan man lige så godt bruge preg i
første omgang. Skal man arbejde simpelt med regulære udtryk, kan man
lige så godt bruge preg i første omgang (da [\s] er mindre forvirrende
end [[:space:]], når man både skal holde styr på POSIX-udtryk og
klasser i første omgang).
Flere forholdsvis simple regulære udtryk fik fire-til-femdoblet
hastigheden, udelukkende ved skift fra ereg til preg_match. Den slags
forstyrrer min nattesøvn (jeg bliver også urolig og får sved på
håndfladerne, når TV3 fx aflyser Simpsons).
I mange tilfælde er jeg enig om ting som noget med at vælge det
rigtige værktøj, plus hvad vi ellers plejer at gå og sige. Men
ereg-tingen er der ikke meget positivt at sige om. Jeg ser ingen grund
til at begynde at arbejde med den - udover POSIX-argumentet.
>Derimod
>skal man sørge for generelt at undgå at bruge regulære udtryk der, hvor
>man kunne bruge almindelige stengfunktioner som strstr, strpos osv.
Det skal selvfølgelig ses i proportion med opgaven, ja.
--
- Peter Brodersen
24 Days of Crashmas - julekalender:
http://jul.bums.dk/