C# 不中断HTMLC的子字符串#
嗨,伙计们,我正在尝试获取一个已经输入到wysiwyg编辑器中的描述,并获取它的子字符串 i、 eC# 不中断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]+))?)
这是一些文本
我想限制一些描述而不破坏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;