解析由多个分隔符拆分的字符串中的项目

时间:2014-02-18 12:34:05

标签: c# .net string-split

从gmail检索标签列表时,它们会以单个字符串形式返回:

\Inbox \Sent Important "Muy Importante" foo

我想知道是否有内置的.NET函数将其拆分为“真正的”格式 - 即

["\Inbox", "\Sent Important", "Muy Importante", "foo" ]

或者这是正则表达式吗?

2 个答案:

答案 0 :(得分:2)

如果模式是规则的,那么我将简单地遍历字符,直到找到预期的分隔符。

<强> 1。循环通过字符直到第二个“\”字符。

此时你知道你的第一个单词是什么。将其存储在变量中。

<强> 2。从之前的位置开始,再次循环,直到遇到空格字符。

您现在知道第二段是什么。存储在变量中。

第3。从之前的位置开始,循环直至达到引号。

现在您知道第三段是什么了。再次,存储在变量中。

<强> 4。从之前的位置开始,循环直至达到第二个引号。

你现在有了第四段。第五个是剩下的东西。将两者都存储在变量中。

当然,在每一步你都想做一些修剪,但这会给你一个主要的想法。您将能够使用您的段变量来执行您想要的任何操作。正则表达式会更有效率。

不要忘记:这是模式是否规则。

答案 1 :(得分:0)

就个人而言,我会使用Regex ......

C#版

System.Text.RegularExpressions.Regex.Split("\\Inbox \\Sent Important \"Muy Importante\" foo", " \"*")

VB.Net版

System.Text.RegularExpressions.Regex.Split("\Inbox \Sent Important ""Muy Importante"" foo", " ""*")