Регулярное выражение для удаления тегов HTML - PullRequest
9 голосов
/ 25 сентября 2010

Я использую следующее регулярное выражение для удаления тегов HTML из строки.Это работает, за исключением того, что я оставляю закрывающий тег.Если я попытаюсь удалить: <a href="blah">blah</a>, то выйдет из <a/>.

. Я вообще не знаю синтаксиса регулярных выражений и проверил это.Может кто-то со знанием RegEx, пожалуйста, предоставьте мне шаблон, который будет работать.

Вот мой код:

  string sPattern = @"<\/?!?(img|a)[^>]*>";
  Regex rgx = new Regex(sPattern);
  Match m = rgx.Match(sSummary);
  string sResult = "";
  if (m.Success)
   sResult = rgx.Replace(sSummary, "", 1);

Я надеюсь удалить первый случай <a> и <img> тегов.

Ответы [ 13 ]

0 голосов
/ 02 апреля 2015

Удалить изображение из строки, используя регулярное выражение в c # (поиск изображения выполняется по идентификатору изображения)

string PRQ=<td valign=\"top\" style=\"width: 400px;\" align=\"left\"><img id=\"llgo\" src=\"http://test.Logo.png\" alt=\"logo\"></td>

var regex = new Regex("(<img(.+?)id=\"llgo\"(.+?))src=\"([^\"]+)\"");

PRQ = regex.Replace(PRQ, match => match.Groups[1].Value + "");
0 голосов
/ 17 октября 2013

Вот метод расширения, который я использовал довольно давно.

public static class StringExtensions
{
     public static string StripHTML(this string htmlString, string htmlPlaceHolder) {
         const string pattern = @"<.*?>";
         string sOut = Regex.Replace(htmlString, pattern, htmlPlaceHolder, RegexOptions.Singleline);
         sOut = sOut.Replace("&nbsp;", String.Empty);
         sOut = sOut.Replace("&amp;", "&");
         sOut = sOut.Replace("&gt;", ">");
         sOut = sOut.Replace("&lt;", "<");
         return sOut;
     }
}
0 голосов
/ 25 сентября 2010

Вот метод расширения, который я создал, используя простое регулярное выражение для удаления тегов HTML из строки:

/// <summary>
/// Converts an Html string to plain text, and replaces all br tags with line breaks.
/// </summary>
/// <returns></returns>
/// <remarks></remarks>
[Extension()]
public string ToPlainText(string s)
{

    s = s.Replace("<br>", Constants.vbCrLf);
    s = s.Replace("<br />", Constants.vbCrLf);
    s = s.Replace("<br/>", Constants.vbCrLf);


    s = Regex.Replace(s, "<[^>]*>", string.Empty);


    return s;
}

Надеюсь, это поможет.

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