expressão regular com preg_match

175 views
Skip to first unread message

Fabricio Ferreira

unread,
May 28, 2010, 6:42:03 AM5/28/10
to php-brasil
Olá!

Tenho uma string que contém uma tabela (<table>) com várias linhas
(<tr>).
Porém a string é contínua, ou seja não possui quebras de linha (\n).
E eu preciso pegar apenas o conteúdo de um <tr> que tá lá no meio
dessa string.
Para isso, fiz uma expressão regular assim:

preg_match("/<tr>.*parte do conteúdo que eu quero.*<\/tr>/i",
$indices, $matches);

Só que isso me retorna todos os <tr> da tabela, pq ele entende que eu
quero o <tr> mais qualquer coisa e no final um </tr>.
Minha dúvida é como fazer para pegar apenas o primeira ocorrência do
<tr> antes da string que eu tenho como parametro e a primeira
ocorrência do </tr> depois desse parametro.

Alguém sabe se dá pra fazer isso só usando o preg_match ou se vou ter
que usar substr, ou até mesmo quebrar a string com explode?

Agradeço desde já pelas respostas.
Valeu!

Fabricio.

Drausio Maiquel

unread,
May 28, 2010, 12:36:17 PM5/28/10
to php-b...@googlegroups.com
Fabricio,

Esses dias eu precisei usar expressões regulares para separar um conteúdo de determinadas tags.

dá uma olhada no código que funcionou pra mim e veja se ajuda...

$str = "<!-- comentarios --> testando 123 <!-- /comentarios -->";
echo "$str <BR>";
$str = preg_replace('#(<!-- comentarios -->).*?(<!-- /comentarios -->)#', '$1 456 testei $2', $str);
echo "$str <BR>";

Boa sorte


--
Drausio Maiquel


--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.


Reply all
Reply to author
Forward
0 new messages