( egeresz | 2010. 08. 06., p – 14:23 )

Szia,

a konkret kerdesre valaszolva

Illeszkedjen minden /minta/ -ra, ami utan nem jon se /tiltott1/ se /tiltott2/

Reszeiben: mi az, ami illeszkedik midnenre, kiveve a /tiltott1/ -et es a /tiltott2/ -ot.
Bonyi ez, ezeknek a regexpes kifejtese irgalmatlan hosszu.
Pl "a" es "b" legyen a /tiltott1/ /tiltott2/, ekkor a kifejezesed:
'[^ab]'
De ha "aa" es "bb", akkor:
'(^.$|[^ab][^ab]|a[^a]|b[^b])'

Ez a regularis kifejezesek (nyelvek) generalo tipusu modszere miatt van igy, nagyon nehez legeneralni az osszes szot, kiveve nehanyat.
Sokkal konnyebb nehany szot generalni.
Pont emiatt van a grep -nek -v kapcsoloja. Meg talan van tagadas a perl regexpben is, de ez nem ment meg a mertektelen szivastol.

picit bovebben ertelmezve valaszolva

A html egy bonyolult nyelv.
Nem mindegy, hogy

<a href="http://foo/">bar</a>

Vagy

<img src="kep" alt="href=http://foo/">

esetleg

<!--  <a href="http://foo/">bar</a> -->

Az ilyenekre nagyon nehez regularis kifejezest irni. Sokkal konyebb dolgod van, ha egy olyan programmal dolgozol, aminek vannak belso allapotai, es tud regexpet illeszteni egyszerre. QAkkor megteheted, hogy egy valtozoban nyilvantartod, hogy milyen allapotban van az ertelmezes eppen (tagen belul, kommenten belul, idezojelen belul stb). Pont erre valo a bison/yacc. Bar varhatoan a sed elvileg kepes erre a feladatra, azonban azt hiszem, konnyebb dolgod lenne a bison-t nullarol tanulva megoldani a dolgot, mint seddel.

de varhatoan ez kell neked valojaban

Az kell, hogy egy leszedett html oldal lokalis gepen, vagy masig helyre feltoltve is hasznalhato legyen.
Pont erre valo a

wget -k

Ugyan ez pont azt csinalja, hogy az abszolult hivatkozasokbol is relativat csinal ahol lehet, te meg pont az ellenkezojet mondtad, de ennek megiscsak inkabb igy lenne az ertelme.