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



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

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

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

Some text</p><p>More text

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

使用Regex

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

Regex细分:

^:匹配字符串的开头

<:打开标签

>:关闭标签

[^>^<.]*:排除标签中的关闭和打开标签,并尽可能频繁地匹配除被排除的字符之外的任何字符

再次执行同样的操作,只是这次我们将字符串的末尾与表达式末尾的$进行匹配

如果标签总是3个字符,那么只需从字符串中删除前3个和后3个字符。如果你想使用这个,你可以试试字符串。移除(0,2(;例如string.replaces不起作用,因为该字符串包含多个

,并且您不希望将它们全部删除。

编辑:我看到你想让它与任何标记类型一起使用,然后我会尝试这样做:查找第一个>并且最后<在字符串中。并使用那些带有0和字符串长度的位置来字符串。移除标记。

最新更新