Удалить теги HTML и комментарии из строки в C #? - PullRequest
3 голосов
/ 09 апреля 2010

Как мне удалить все, начиная с '<' </strong> и заканчивая '>' из строки в C #. Я знаю, что это можно сделать с помощью regex , но я не очень хорош в этом.

Ответы [ 3 ]

3 голосов
/ 09 апреля 2010

Шаблон тега, который я быстро написал для недавнего небольшого проекта, является следующим.

string tagPattern = @"<[!--\W*?]*?[/]*?\w+.*?>";

Я использовал его следующим образом

MatchCollection matches = Regex.Matches(input, tagPattern);
foreach (Match match in matches)
{
    input = input.Replace(match.Value, string.Empty);
}

Вероятно, его необходимо изменить, чтобы он был корректнымобрабатывать сценарии или теги стилей.

1 голос
/ 14 августа 2014

Еще один код без регулярных выражений, который работает в 8 раз быстрее регулярных выражений:

public static string StripTagsCharArray(string source)
{
    char[] array = new char[source.Length];
    int arrayIndex = 0;
    bool inside = false;
    for (int i = 0; i < source.Length; i++)
    {
        char let = source[i];
        if (let == '<')
        {
            inside = true;
            continue;
        }
        if (let == '>')
        {
            inside = false;
            continue;
        }
        if (!inside)
        {
            array[arrayIndex] = let;
            arrayIndex++;
        }
    }
    return new string(array, 0, arrayIndex);
}
1 голос
/ 09 апреля 2010

Параметр без регулярных выражений: Но он все равно не будет анализировать вложенные теги!

public static string StripHTML(string line)
        {
            int finished = 0;
            int beginStrip;
            int endStrip;

            finished = line.IndexOf('<');
            while (finished != -1)
            {
                beginStrip = line.IndexOf('<');
                endStrip = line.IndexOf('>', beginStrip + 1);
                line = line.Remove(beginStrip, (endStrip + 1) - beginStrip);
                finished = line.IndexOf('<');
            } 

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