aqui no código abaixo
==============================
<ul>
<li>
<div><span><img src="/portal/uploads/20091221232140.jpg"
alt=""></span></div>
<h6>21/12/2009 <!--<em>[11:28h]1</em>--></
h6><br/>
<h3><a href="noticia.php?
cod=3135">Servidores da Assembleia recebem de dezembro nesta
terça</a></h3>
</li>
<li>
<div><span><img src="/portal/uploads/20091218172728.jpg"
alt=""></span></div>
<h6>18/12/2009 <!--<em>[11:28h]1</em>--></
h6><br/>
<h3><a href="noticia.php?
cod=3134">Assembleia aprova por unanimidade LOA 2010</a></h3>
</li>
<li>
<div><span><img src="/portal/uploads/20091218163931.jpg"
alt=""></span></div>
<h6>18/12/2009 <!--<em>[11:28h]1</em>--></
h6><br/>
<h3><a href="noticia.php?
cod=3133">Presidente Arthur comemora conquistas em 2009</a></h3>
</li>
</ul>
</div>
==============================
utilizei algo do tipo
/<a href=\"{3}/ (em php) e encontrou 0 vezes, mas só quero a terceira
ocorrência
testei {1} e encontrou 3 vezes
...
E ai?
algum bom samaritano pode me ajudar?
Olá, nesses casos eu acho melhor usar XPath pela SimpleXML do PHP do
que usar regex... Mas se você quer usar regex, você poderia usar algo
como:
preg_match('/<ul>\s*<li>(?:(?!<\/li>).)+<\/li>\s*<li>
\s*<div><span><img src="([^"]+)/s', $html, $match);
PS: A expressão regular acima foi montada baseando-se que o primeiro
<ul><li> encontrado seja o alvo.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Expressões regulares" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para expressoes...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para expressoes-regul...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/expressoes-regulares?hl=pt-BR.
Em 11/01/2010 11:03, caio ariede < caio....@gmail.com > escreveu:
Como o Felipe disse, a melhor solução é utilizar um analisador próprio.
Diria que ainda, a segunda opção não seria regex, nem tanto pelo fato da performance, mas da leitura do código e manutenção.
Você pode primeiramente processar o texto, usando funções básicas, e posteriormente aplicar a expressão regular, assim você tem uma expressão mais objetiva:
1 $text = ...;
2
3 $start = 0; $i = 3-1; while (--$i)
4 {
5 $start = stripos($text, ' 6 }
7
8 preg_match('!]*>(.*)!', substr($text, $start), $match);
9
10 var_dump(current($match));
Caio Ariede
http://caioariede.com/
2010/1/11 Felipe Pena <feli...@gmail.com>
On 11 jan, 10:04, RockBlock <eli_mor...@uol.com.br> wrote:
> Gente sou novato na lista
> Quero contrar casar somente a TERCEIRA ocorrência de >
> aqui no código abaixo
> ==============================
>
>
>
> alt="">
>
21/12/2009 <!--[11:28h]1-->> h6>
>
Servidores da Assembleia recebem de dezembro nesta
> terça
>
>
>
>
>
> alt="">
>
18/12/2009 <!--[11:28h]1-->> h6>
>
Assembleia aprova por unanimidade LOA 2010
>
>
>
>
>
> alt="">
>
18/12/2009 <!--[11:28h]1-->> h6>
>
Presidente Arthur comemora conquistas em 2009
>
>
>
>
>
> ==============================
>
> utilizei algo do tipo
> / > ocorrência
> testei {1} e encontrou 3 vezes
> ...
>
> E ai?
> algum bom samaritano pode me ajudar?
Olá, nesses casos eu acho melhor usar XPath pela SimpleXML do PHP do
que usar regex... Mas se você quer usar regex, você poderia usar algo
como:
preg_match('/
\s*
(?:(?!<\/li>).)+<\/li>\s*
\s*
PS: A expressão regular acima foi montada baseando-se que o primeiro