Соответствующая строка и затем символы, пока указанная строка не появится снова - PullRequest
1 голос
/ 23 октября 2009

У меня есть следующая строка:

<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 Ответ

1 голос
/ 23 октября 2009

В 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>, это удаляет самое короткое совпадение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...