从gmail检索标签列表时,它们会以单个字符串形式返回:
\Inbox \Sent Important "Muy Importante" foo
我想知道是否有内置的.NET函数将其拆分为“真正的”格式 - 即
["\Inbox", "\Sent Important", "Muy Importante", "foo" ]
或者这是正则表达式吗?
答案 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", " ""*")