如何使用 C# 删除开始和结束 html 标记?

How to remove start and end html tag using C#?

如果我有一些 html 代码,例如:

<p>Some text</p><p>More text</p>

...我想删除该字符串的开始和结束标记,所以我最终得到:

Some text</p><p>More text

C# 代码会是什么样子?我希望它适用于任何标签类型,如果它们有 类,等等。只需要能够删除开始和结束标签。

如果标签总是 3 个字符,您只需从字符串中删除第一个和最后一个 3 个字符。如果你想使用它,你可以尝试 string.Remove(0,2);例如。 string.replace 不起作用,因为该字符串包含多个

而您不希望将它们全部删除。

编辑:我看到您希望它与任何标签类型一起使用,那么我会试试这个:找到字符串中的第一个 > 和最后一个 <。并将这些位置与 0 和 string.length 一起使用到 string.remove 标签。

使用正则表达式

var item = "<p>Some text</p><p>More text</p>";
item = Regex.Replace(item,@"^<[^>^<.]*>","");
item = Regex.Replace(item,@"<[^>^<.]*>$","");
Console.WriteLine(item) //Will log Some text</p><p>More text

正则表达式分解:

^:匹配字符串的开头

<: 开始标签

>: 结束标签

[^>^<.]*: 排除标签内的结束标签和开始标签,并尽可能多地匹配除被排除字符之外的任何字符

再次做同样的事情只是这次我们将字符串的末尾与表达式末尾的$匹配