相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<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)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

c#安全地截断HTML文章摘要

有没有人有这个变种?

这是我可以采取一些HTML并显示它而不打破作为文章的摘要引导?

截断包含HTML的文本,忽略标记

让我免于重新发明轮子!

编辑

对不起,新来的,你的权利,应该更好地表达这个问题,还有更多的信息

我希望获取一个html字符串并将其截断为一定数量的单词(甚至是char长度),这样我就可以将它的开头显示为摘要(然后导致主要文章).我希望保留html,以便我可以在预览中显示链接等.

我必须解决的主要问题是,如果我们在一个或多个标签的中间截断,我们最终可能会得到未封闭的html标签!

我有解决方案的想法是

  1. 首先将html截断为N个单词(单词更好但chars ok)(确保不要停留在标记的中间并截断require属性)

  2. 通过这个截断的字符串中打开的html标签工作(也许我会把它们粘在堆栈上?)

  3. 然后处理结束标记并确保它们与我在弹出它们时的堆栈匹配?

  4. 如果在此之后有任何打开的标签留在堆栈上,那么将它们写入截断的字符串的末尾,html应该是好的去!

编辑12/11/2009

  • 这就是我在VS2008中的单元测试文件中偶然发现的,这可能会帮助将来的某个人
  • 基于Jan代码的hack尝试在char版本+ word版本的顶部(免责声明:这是我的粗糙代码!)
  • 我假设在所有情况下使用'格式良好'的HTML(但不一定是根据XML版本具有根节点的完整文档)
  • Abels XML版本处于底层,但尚未完全获得在此上运行的测试(还需要了解代码)...
  • 当我有机会改进时,我会更新
  • 发布代码有问题吗?堆栈上没有上传工具吗?

感谢所有评论:)

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)

html c# regex

13
推荐指数
1
解决办法
8541
查看次数

标签 统计

html ×2

regex ×2

c# ×1

xhtml ×1