-
1. Data: 2009-08-26 08:46:41
Temat: wyrazenia regularne...
Od: "Rafal\(sxat\)" <g...@o...pl.usunto>
Witam
mam pytanie, jak wyciagnac wartosc z takiego wzorca
<slowo>[wyrazenie_do_wyciagniecia]<slowoend>
chodzi mi o to ze np slowo([^slowoend]+)slowoend - to nie dziala bo [^ ...
moge tylko podac zakres znakow ktore maja zostac wylaczone, a ja potrzebuje
podac grupe znakow.... ;) 2-3 litery ktore okreslaja razem jako cos co ma
zostac pominiete....
bo mam cos takiego
<div>dane<br><p><dane></p></div> i chce wyciagnac wszystko co jest pomiedzy
div...
Rf
-
2. Data: 2009-08-26 08:49:30
Temat: Re: wyrazenia regularne...
Od: Daniel Janus <n...@k...pl>
Dnia 26.08.2009 Rafal(sxat) <g...@o...pl.usunto> napisał/a:
> chodzi mi o to ze np slowo([^slowoend]+)slowoend - to nie dziala bo [^ ...
> moge tylko podac zakres znakow ktore maja zostac wylaczone, a ja potrzebuje
> podac grupe znakow.... ;) 2-3 litery ktore okreslaja razem jako cos co ma
> zostac pominiete....
Jeśli to PCRE, to interesuje Cię slowo(.(?!slowoend)+)slowoend -- to
jest negative zero-width lookahead assertion.
Inna rzecz, że jeśli chcesz wyłuskiwać w ten sposób kawałki HTML-a, to
lepiej go sparsować i wyciągnąć jakieś poddrzewo struktury dokumentu (a
potem ew. zserializować z powrotem). Ja używam do tego cl-html-parse,
ale to może być niepopularny wybór ze względu na język ;-)
--
Daniel 'Nathell' Janus, m...@n...korpus.pl, http://danieljanus.pl
(unless (equalp
(lisp-implementation-type)
"SBCL") (quit)) ;; --SBCL Advocacy Haiku
-
3. Data: 2009-08-26 08:50:45
Temat: Re: wyrazenia regularne...
Od: Paweł Kierski <n...@p...net>
Rafal(sxat) wrote:
> Witam
>
>
> mam pytanie, jak wyciagnac wartosc z takiego wzorca
>
> <slowo>[wyrazenie_do_wyciagniecia]<slowoend>
>
> chodzi mi o to ze np slowo([^slowoend]+)slowoend - to nie dziala bo [^ ...
> moge tylko podac zakres znakow ktore maja zostac wylaczone, a ja potrzebuje
> podac grupe znakow.... ;) 2-3 litery ktore okreslaja razem jako cos co ma
> zostac pominiete....
>
> bo mam cos takiego
>
> <div>dane<br><p><dane></p></div> i chce wyciagnac wszystko co jest pomiedzy
> div...
slowo(.+)slowoend tylko + musi być mało zachłanny. Albo opcja dla
procesora wyrażeń, albo - jak dobrze pamiętam dla boost::regex - "+?",
czyli slowo(.+?)slowoend
--
Paweł Kierski
n...@p...net
-
4. Data: 2009-08-26 09:08:13
Temat: Re: wyrazenia regularne...
Od: "Rafal\(sxat\)" <g...@o...pl.usunto>
>
> Jeśli to PCRE, to interesuje Cię slowo(.(?!slowoend)+)slowoend -- to
> jest negative zero-width lookahead assertion.
hymm, wiec sa to 2 rozne rzeczy eregi i pcre z phpa....
pozdrawiam
Rf