Regex para pegar conteúdo até a primeira ocorrência de uma palavra

Posted . Visible to the public.

Por muito tempo eu sofri precisando disso e nunca conseguia uma tag que me desse como resultado de uma regex todo o conteúdo entre duas palavras, apenas até a primeira ocorrência dela.

<table>
    <tr>
        <td>
            conteúdo que eu quero
        </td>
        <td>
            bláblábláblábláblábláblábláblá
            bláblábláblábláblábláblábláblá
            bláblábláblábláblábláblábláblá
        </td>
    </tr>
</table>

No exemplo acima eu quero obter todo conteúdo entre as tags table, mas com uma regex comum
(?s).* todo o blábláblá seguinte também será retornado em apenas um resultado.

Resultado:

conteúdo que eu quero


bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá

Com uma simples modificação na expressão anterior:
(?s).*? ela retornará dois resultados, o primeiro será o desejado e o segundo poderia ser descartado.

Resultado parte 1:

conteúdo que eu quero

Resultado parte 2:

bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá
bláblábláblábláblábláblábláblá

João Paulo
Last edit
Posted by João Paulo to ZeroGlosa (2013-01-10 21:22)