gpt4 book ai didi

c# - 正则表达式从字符串中删除特定标签及其内容

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:48 24 4
gpt4 key购买 nike

我有一个给定的字符串:

"Hi there <ss type="laugh">:)</ss>"

当我使用

Regex.Replace(s, @"<(.|\n)*?>", string.Empty);

它返回我

"Hi there :)"

我如何修改表达式以删除所有“ss”标签和它们之间的所有内容?

最佳答案

该字符串包含一个常规的 XML 标记,因此您可以使用 XElement

此代码将只保留外部元素的文本(标签外的文本):

var s = "Hi there <ss type=\"laugh\">:)</ss>";
var el = XElement.Parse(string.Format("<root1>{0}</root1>", s));
var result = string.Concat(el.Nodes().OfType<XText>().Select(t => t.Value)).Trim();

enter image description here

只需确保使用 System.Xml.Linq 命名空间即可。

如果您有其他 XML 标签并且您只想删除 ss 标签:

var s = "<b>Hi</b> there <ss type=\"laugh\">:)</ss>";
var el = XElement.Parse(string.Format("<root1>{0}</root1>", s));
el.Descendants("ss").Remove();
var reader = el.CreateReader();
reader.MoveToContent();
var result2 = reader.ReadInnerXml().Trim();

结果:enter image description here

关于c# - 正则表达式从字符串中删除特定标签及其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com