【问题标题】:How to get the substring of a string that contains HTML tags using C# .net?如何使用 C# .net 获取包含 HTML 标记的字符串的子字符串?
【发布时间】:2012-09-25 12:22:45
【问题描述】:

我有一个包含 HTML 标记的子字符串,我需要缩短它,但要以与字符串上显示的格式相同的格式显示它。

它的长度不一定是 X 个字符,但它应该足够短,以便在具有特定宽度和高度的面板中显示?

有什么方法可以使用 c# 实现这一点吗?

使用 CSS 怎么样? IE。无论其内容如何,​​都以固定高度显示面板?

谢谢..

示例:我有以下面板,其中包含一个标签,该标签包含带有 html 标签的文本:

我需要删除滚动条而不使面板变长但保持这个高度和这个宽度..

【问题讨论】:

  • 你的意思是把“Some Very Long String”变成“ Some Rea...?
  • 是的,这是一个选项,另一个是在 Some Rea 中显示 Some really Bold String,因为这是面板的尺寸。(我希望避免滚动条并通过仅显示部分内容来保持面板的尺寸)
  • 我编辑了添加示例的帖子。
  • 使用 css:overflow:hidden.
  • 你要剥离 HTML 吗?

标签: c# asp.net substring html


【解决方案1】:

您可以使用正则表达式来查找特定标签的内容。之后使用 .substring 缩短结果。

一个例子可以是:

<h1>head</h1>
<p>contents</p>

正则表达式可以是:

<p\b[^>]*>(.*?)</p>

结果是:

<p>contents</p>

现在只需排除开始和结束标记。作为它的固定长度。

我发现有关更改 HTML 标记之间的内容的阅读更有趣。在这里阅读(正则表达式 ftw!):

http://www.thatsquality.com/articles/how-to-match-and-replace-content-between-two-html-tags-using-regular-expressions


如果你想在 c# 中解决它,另一个可能不会让你发疯的解决方案:

HTML Agility Pack

查看网站的示例部分。很棒的小工具!

【讨论】:

  • HTML 再次使用正则表达式??看看这里的杰作:stackoverflow.com/a/1732454/1090657.
  • 非常酷的帖子 - 喜欢他所做的。话虽如此,我有一个老板靠正则表达式解析 html 为生。正则表达式查找模式。任何字符串都可以具有这些模式。虽然我同意 CSS 解决方案可能更明智,但正则表达式远非不可能。每个人似乎都在追求 CSS 解决方案,所以我试图想一个在 c# 中可行的解决方案。
  • 谢谢@Wraithbone 真的很有趣
【解决方案2】:

如果您有以下 html 代码:

<div class="div1"> Some Really Bold String </div>

你可以提供css来隐藏滚动条,

.div { overflow:hidden; height:200px; width:200px;}

heightwidth 值仅用于示例目的。
overflow:hidden 不会让 div 的内容扩展到 div 之外。 你会在overflowhere找到更多信息。

【讨论】:

  • 太棒了!很高兴我能提供帮助。
猜你喜欢
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 2020-11-21
  • 2020-04-05
相关资源
最近更新 更多