【发布时间】:2017-05-02 18:57:09
【问题描述】:
我有一个字符串 [它不只是查看字符串中的 GUID 模式,我正在使用 HtmlAgilityPack 解析并将它们转换为 htmlnodes,然后我必须仅在节点包含可提取 id 和type=\"ClickButton\" value='上传,为简单起见,我减少了所有细节]
"\r\n <extractable id=\"00000000-0000-0000-0000-000000000000\" class=\"myButtonC\" type=\"ClickButton\" value='upload'>\r\n "
我想从中提取 GUID。它是 HTML 解析的一部分。所以我使用了下面的方法并尝试提取,似乎不起作用。我如何表示 "\" " ?和 "=\"" ?我使用 " as \" 和 \ as \ 来表示文字。有什么建议吗?
private static string ExtractId(string str)
{
string eId = string.Empty;
string[] arrys = str.Split(new string[] {@"\"" "}, StringSplitOptions.None);
foreach (string[] lists in arrys.Select(t => t.Split(new string[] {@"=\"""}, StringSplitOptions.None)))
{
for (int j = 0; j < lists.Length; j++)
{
if (lists[j].Contains("extractable id"))
{
eId = lists[j + 1];
}
}
}
return eId;
}
【问题讨论】:
-
类似xml的尝试使用xml阅读器
-
看起来像HTML,所以使用HtmlAgilityPack来解析。
-
我同意 Hans,使用 HtmlAgitityPack 获取
extractable节点并从id属性中提取值。 -
我第二次将其视为 html - 如果您依赖字符序列并尝试解析它,如果 xml/html 更改为
<extractable class="myButtonC" id="00000000-0000-0000-0000-000000000000" ...>,您的代码可能会中断
标签: c# split string-literals