/ / Matching string e, em seguida, caracteres até que uma string especificada apareça novamente - regex

Correspondência de string e depois caracteres até que uma string especificada apareça novamente - regex

Eu tenho a seguinte string:

<tr><td>2.</td></tr><tr><td colspan="25"><img src="/images//adad4.gif" alt="" align="middle"></td></tr><tr><td>3.</td></tr><tr><td colspan="25"><img src="/images//h5s6c.gif" alt="" align="middle"></td></tr><tr><td>4.</td></tr><tr><td>5.</td><td>2</td></tr>

Eu quero remover todas as ocorrências de

<tr><td colspan="25"><img src="/images//somegifname.gif" alt="" align="middle"></td></tr>

parte. Mas como?

Em suma, eu quero remover tudo, desde

<tr><td colspan="25">

para a primeira ocorrência seguinte de

</tr>

e inclua ambas as cadeias na remoção também.

Desde já, obrigado.

Respostas:

1 para resposta № 1

Em C # usando expressão regular:

var regex =
new Regex(
"<tr><td colspan="25">.*?</tr>"
);

var result =
regex.Replace(
"<tr><td>2.</td></tr><tr><td colspan="25"><img src="/adad4.gif" alt="" align="middle"></td></tr><tr><td>3.</td></tr><tr><td colspan="25"><img src="/h5s6c.gif" alt="" align="middle"></td></tr><tr><td>4.</td></tr><tr><td>5.</td><td>2</td></tr>",
""
);

Anote o ponto de interrogação <tr><td colspan="25">.*?</tr> isso remove a correspondência mais curta.