我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
有没有人有这个变种?
这是我可以采取一些HTML并显示它而不打破作为文章的摘要引导?
让我免于重新发明轮子!
对不起,新来的,你的权利,应该更好地表达这个问题,还有更多的信息
我希望获取一个html字符串并将其截断为一定数量的单词(甚至是char长度),这样我就可以将它的开头显示为摘要(然后导致主要文章).我希望保留html,以便我可以在预览中显示链接等.
我必须解决的主要问题是,如果我们在一个或多个标签的中间截断,我们最终可能会得到未封闭的html标签!
我有解决方案的想法是
首先将html截断为N个单词(单词更好但chars ok)(确保不要停留在标记的中间并截断require属性)
通过这个截断的字符串中打开的html标签工作(也许我会把它们粘在堆栈上?)
然后处理结束标记并确保它们与我在弹出它们时的堆栈匹配?
如果在此之后有任何打开的标签留在堆栈上,那么将它们写入截断的字符串的末尾,html应该是好的去!
感谢所有评论:)
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.XPath;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace PINET40TestProject
{
[TestClass]
public class UtilityUnitTest
{
public static string TruncateHTMLSafeishChar(string text, int charCount)
{
bool inTag = false;
int cntr = 0;
int cntrContent = 0;
// loop through html, counting only viewable content
foreach (Char c in text)
{
if (cntrContent …Run Code Online (Sandbox Code Playgroud)