不破坏html C#的子字符串

2024-02-29

大家好,我正在尝试获取已在所见即所得编辑器中输入的描述并获取它的子字符串。

i.e

This is some <span style="font-weight:bold;">text</span>

如果我只是子串并添加...,我想在不破坏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);
    }

但它并没有完全让我到达那里!


Use the HTML 敏捷包 http://html-agility-pack.net加载 HTML,然后获取 InnerText。

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

另请参阅C#:HtmlAgilityPack 提取内部文本 https://stackoverflow.com/questions/2785092/c-htmlagilitypack-extract-inner-text

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不破坏html C#的子字符串 的相关文章

  • 在文档片段中查找注释或文本节点

    我必须清理 Nokogiri HTML DocumentFragment 文档 删除仅包含空格的注释节点和文本节点 这是一个例子 html p paragraph p p paragraph p p paragraph p doc Noko
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • 版本差异? Java 中的正则表达式转义

    看来正则表达式转义在不同版本的 Java 中的工作方式不同 在 Java openjdk 16 0 1 中编译工作正常 在 Java openjdk 11 0 11 中抛出此编译错误 test java 15 error illegal e
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 对数字进行向上和向下舍入 C++

    我试图让我的程序分别向上和向下舍入数字 例如 如果数字是3 6 我的程序应该四舍五入最接近的数字 4 如果该数字是3 4 它将向下舍入为 3 我尝试使用ceil库获取 3 个项目的平均值 results ceil marks1 marks2
  • 如何在 html 画布上使文本适合精确的宽度?

    如何在 html5 画布上将单行文本字符串调整为精确的宽度 到目前为止我尝试过的是以初始字体大小编写文本 测量文本的宽度measureText my text width 然后根据我想要的文本宽度和实际文本宽度之间的比例计算新的字体大小 它
  • :目标选择器不适用于选项标签

    我试图在这里帮助一位 StackOverflow 成员 我发现 CSS target选择器不适用于选项标签 我创建了一个示例来说明使用w3schools 教程 http www w3schools com cssref tryit asp
  • glDrawElements 只绘制半个四边形

    这是我的功能 void Object draw2 if mIsInitialised return Tell OpenGL about our vertex and normal data glEnableClientState GL VE
  • 如何在没有查询参数的情况下重新加载页面?

    假设我想重新加载www domain com abc num 4 但我想重新加载www domain com abcONLY 问号后没有所有内容 window location window location href split 0
  • CMake - 将预构建库链接到 C# 项目

    我正在使用 CMake 构建 C 库 该库依赖于已构建的库 dll 我似乎无法让图书馆链接到我的图书馆 我尝试过使用target link libraries mylib external lib 我也尝试过暴力破解 reference e
  • 为什么以下代码不允许我使用 fgets 获取用户输入但可以使用 scanf?

    这是一个更大程序的简短摘录 但该程序的其余部分无关紧要 因为我认为我能够隔离该问题 我怀疑这与我使用 fgets 的方式有关 我读过 最好使用 fgets 而不是 scanf 但我似乎无法让它在这里正常工作 当我使用以下代码时 程序不会给我
  • 在 C# 中赋值后如何保留有关对象的信息?

    我一直在问我的想法可能是解决方案 https stackoverflow com questions 35254467 is it possible in c sharp to get the attributes attached to
  • 恢复默认的CSS属性

    我正在编写一个可在多个网站上使用的组件 每个网站都有自己的样式表 并且以不同的方式显示某些内容 我的所有 html 都包含在一个带有 id 的 div 中 div div 然而 我的组件是在所有网站上看起来一致 这很好 因为我将样式应用于组
  • OpenMP C 程序运行速度比顺序代码慢

    我是 OpenMP 的新手 正在尝试并行化 Jarvis 的算法 然而事实证明 与顺序代码相比 并行程序花费的时间要长 2 3 倍 难道问题本身就不能并行化吗 或者我并行化它的方式有问题 这是我针对该问题的 openMP 程序 其中有 2
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • 改进C++逐行读取文件的能力?

    我正在解析大约 500GB 的日志文件 我的 C 版本需要 3 5 分钟 我的 Go 版本需要 1 2 分钟 我正在使用 C 的流来流式传输文件的每一行以进行解析 include
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • 如何在 Ruby 中获取 Linux 系统信息

    如何在 Ruby 中获取 Linux 系统的软件 硬件信息 这必须适用于 Fedora Ubuntu 等 Chef 背后的优秀人员 拥有一颗名为 Ohai 的优秀宝石https github com opscode ohai https g
  • 这个“ld”错误(“未定义的引用”)是什么意思?

    这个错误是什么意思 tmp ccevEqoI o In function main funcptr c text 0x61 undefined reference to AddALL collect2 ld returned 1 exit
  • GD库占用内存大吗?

    我想在我的 PHP 脚本中使用 GD 库从外部服务器生成随机大图片的小缩略图 每次调用页面时 GD库都会重新生成缩略图并显示 这会减慢服务器速度或消耗异常数量的内存吗 GD使用大量内存 它将图像完全加载到内存中并将其解压缩 因此每个像素至少
  • 什么是 Windows Phone Silverlight 8.1 中作为后台任务的 gHost.Background 任务?

    当我创建新的 Windows Phone SIlverlight 8 1 应用程序时 清单中有一个后台任务
  • RichFaces 4.2 日历。如何通过JavaScript设置日历的InputField?

    我必须将客户端的日期字符串复制到日历输入字段 更新日期输入 以下 JavaScript 不起作用 document getElementById AddressDetails renewal date input value renewal
  • Jquery国际电话号码输入

    我正在尝试遵循 jquery 教程http www jqueryscript net form jQuery International Telephone Input With Flags Dial Codes html http www
  • 在现有 S3 对象上运行 S3-put-triggered Lambda 函数?

    我在 Node js 中有一个 Lambda 函数 用于处理添加到我的存储桶中的新图像 我想为所有现有对象运行该函数 我怎样才能做到这一点 我认为最简单的方法是 重新放置 每个对象 以触发该功能 但我不确定如何执行此操作 需要明确的是 我想
  • 正确分发带有数据库的 Java 应用程序

    我有一个 Java 应用程序 它使用我想要分发的 MySql 数据库 我担心的是 为了分发此应用程序 我需要假设目标系统同时安装了 JRE 和 MySql Server 有什么方法可以将我的应用程序与 JRE 和 MySql 服务器捆绑在一
  • Google Analytics 事件跟踪 - 最大字符串长度

    我正在使用 Google Analytics 来跟踪 Android 应用程序中的事件 我的问题是 事件中的字符串长度是否有限制 我在谷歌的开发指南网站上没有找到任何关于这个主题的信息 此致 Edit 我尝试了一个包含 2000 个字符的字
  • 在 http.Handler ServeHTTP 函数中计算 Go 中发送和接收的字节数?

    如何计算发送和接收的字节数ServeHTTPGo 中的函数 计数需要相对准确 跳过连接建立并不理想 但可以接受 但必须包含标题 它还需要很快 迭代通常太慢 计数本身不需要发生在ServeHTTP 只要给定连接的计数可用于ServeHTTP
  • Python requests.exception.ConnectionError:连接中止“BadStatusLine”

    我正在尝试使用 Python requests 模块发出 Http GET 命令来访问一些基于 REST 的 API 这些 url 在 RESTClient 上工作正常 但是当我在 python 中使用相同的 url 时 出现连接错误 我试
  • 设备像素比到底是什么?

    每一篇关于移动网络的文章都提到了这一点 但我找不到任何地方可以解释这个属性到底衡量什么 任何人都可以详细说明这样的查询会检查什么吗 media only screen and webkit min device pixel ratio 1
  • BDD 和 Behat 特殊字符

    有类似的问题 Behat 和输入验证场景中的 Gherkin https stackoverflow com questions 6561815 gherkin in behat and input validations scenario
  • 获取当前剪贴板内容? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道一种方法 让我的脚本检测剪贴板的内容 并在页面打开时将其粘贴到文本字段中 而无需用户输入 如何做呢 请注意 此解决方案在 Fi
  • CallKit 查找用于从本机电话应用程序启动应用程序的号码

    我已经在我们的应用程序中实现了 CallKit 我们的应用程序拨打的电话显示在本机电话应用程序的最近通话列表中 当点击最近列表中我们的应用程序的条目时 我们的应用程序就会启动 有没有办法找出哪个数字 条目 用于启动我们的应用程序 openU
  • 在何处添加事件侦听器的最佳实践

    在我的页面上 用户单击一个元素以对其进行编辑 为了促进这一点 我分配了班级editable所有这些元素 我应该如何监听所有这些元素的点击 目前 我正在这样做 document body addEventListener click even
  • 如何从Google代码库调试源代码

    我想从谷歌代码存储库调试以下源代码 http code google com p rx 我的问题是 我无法找到一个合适的IDE 可以将源代码中的所有子文件夹视为一个完整的项目 我尝试过 netbeans C codeblocks eclip
  • VBA数据层错误处理

    我有一些遗留的 Excel 文件 其中包含大量对存储过程和数据库连接的调用 所有这些都以旧方式使用记录集完成 因为在 VBA 中没有像 NET 中那样的 try catch finally 概念 是否有任何最佳实践可以应用以获得更可靠的数据
  • 在日期字段上使用 max 的 JPQL 查询

    我需要查询以从一组记录中查找具有最新日期的记录 我尝试过很多东西 最近的一个是这样的 select msg msg createdDate from ImportedMessage msg where msg siteId 1 and ms
  • 不破坏html C#的子字符串

    大家好 我正在尝试获取已在所见即所得编辑器中输入的描述并获取它的子字符串 i e This is some span style font weight bold text span 如果我只是子串并添加 我想在不破坏html的情况下限制一