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á