C# 不中断HTMLC的子字符串#

C# 不中断HTMLC的子字符串#,c#,html,regex,substring,C#,Html,Regex,Substring,嗨,伙计们,我正在尝试获取一个已经输入到wysiwyg编辑器中的描述,并获取它的子字符串 i、 e 这是一些文本 我想限制一些描述而不破坏html,如果我只是子字符串和添加 它会破坏html标记 我试过: string HtmlSubstring(string html, int maxlength) { string htmltag = "</?\\w+((\\s+\\w+(\\s*=\\s*(?:\".*?\"|'.*?'|[^'\">\\s]+))?)

嗨,伙计们,我正在尝试获取一个已经输入到wysiwyg编辑器中的描述,并获取它的子字符串

i、 e

这是一些文本
我想限制一些描述而不破坏html,如果我只是子字符串和添加

它会破坏html标记

我试过:

string HtmlSubstring(string html, int maxlength)
    {
        string htmltag = "</?\\w+((\\s+\\w+(\\s*=\\s*(?:\".*?\"|'.*?'|[^'\">\\s]+))?)+\\s*|\\s*)/?>";
        string emptytags = "<(\\w+)((\\s+\\w+(\\s*=\\s*(?:\".*?\"|'.*?'|[^'\">\\s]+))?)+\\s*|\\s*)/?></\\1>";

        var expression = new Regex(string.Format("({0})|(.?)", htmltag));
        MatchCollection matches = expression.Matches(html);
        int i = 0;

        StringBuilder content = new StringBuilder();
        foreach (Match match in matches)
        {
            if (match.Value.Length == 1 && i < maxlength)
            {
                content.Append(match.Value);
                i++;
            }
            else if (match.Value.Length > 1)
            {
                content.Append(match.Value);
            }
        }
        return Regex.Replace(content.ToString(), emptytags, string.Empty);
    }
string-HtmlSubstring(string-html,int-maxlength)
{
字符串htmltag=“1)
{
content.Append(match.Value);
}
}
返回Regex.Replace(content.ToString(),emptytags,string.Empty);
}
但这并不能让我达到目的!

使用加载HTML然后获取InnerText

var document = new HtmlDocument();
document.LoadHtml("...");
document.DocumentNode.InnerText;

另请参见

您能保证输入是HTML编码的吗?也就是说,如果用户键入一个
,它是否已经被翻译成
?有关如何执行HTML正则表达式,请参见此问题:
var document = new HtmlDocument();
document.LoadHtml("...");
document.DocumentNode.InnerText;