gpt4 book ai didi

c# - String.Split 带有特定标签

转载 作者:行者123 更新时间:2023-11-30 21:06:08 24 4
gpt4 key购买 nike

我想拆分一串html标签。例如我有一个字符串:

<p></p>

<table>

<table><p></p></table>


</table>

我要检索的是:

<table>

<table><p></p></table>


</table>

现在的问题是当我打电话时:

string[] values = pContent.Split(new string[] {"<table>","</table>" }, StringSplitOptions.RemoveEmptyEntries);

我得到:

<table>

<table><p></p>

我如何获得其余的?

最佳答案

你可以试试下面的代码:

        string input = String.Concat("<root>", @"<p></p><table><table><p></p></table></table>", "</root>");

XDocument doc = XDocument.Parse(input);
var valuesStr = doc.Root.Element("table").ToString();
string[] values = Regex.Matches(valuesStr, @"<.+?>")
.Cast<Match>()
.Select(o => o.Groups[0].Value)
.ToArray();

它首先创建一个 XDocument 类的实例(用于解析 XML 的类之一),它添加名为“root”的根元素只是为了能够创建 XDocument(每个 XML 文档都必须有一个根)。 XML 文档的内容是从字符串中解析出来的。然后它获取包含文档文本表示的字符串 - 首先访问 Root 属性,因为“table”元素就在根节点下方,之后调用带有“table”的 Element() 方法获取第一个元素在根目录下使用名称“table”(在此示例中,节点下只有一个这样的元素),之后 ToString() 获取文本描述。

Regex.Matches 用于从字符串中提取每个元素,它返回 MatchCollection,然后通过 Cast() 将其转换为 IEnumerable,之后在 IEnumerable 上调用 Select() 扩展方法,获取 Regex 捕获的文本值.匹配 IEnumerable 中的每个匹配项,然后这些值通过 ToArray() 方法作为字符串 [] 返回。

关于c# - String.Split 带有特定标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361964/

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