匹配字符串,然后匹配字符,直到再次出现指定的字符串

时间:2009-10-22 20:45:19

标签: regex

我有以下字符串:

<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>

我想删除

的偶然事件
<tr><td colspan="25"><img src="/somegifname.gif" alt="" align="middle"></td></tr>

一部分。但是如何?

简而言之,我想从

中删除所有内容
<tr><td colspan="25">

到第一次出现的

</tr>

并在删除中同时包含这两个字符串。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在C#中使用正则表达式:

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>",
      ""
   );

请注意<tr><td colspan=\"25\">.*?</tr>中的问号,这样可以删除最短的匹配项。