當檢索從Gmail標籤AA名單分裂,他們回來作爲一個字符串,例如:在一個字符串解析項目由多個分隔符
\Inbox \Sent Important "Muy Importante" foo
如果有一個內置的.NET功能我想知道將其分爲「真」格式 - 即
["\Inbox", "\Sent Important", "Muy Importante", "foo" ]
或者這是一個正則表達式嗎?
當檢索從Gmail標籤AA名單分裂,他們回來作爲一個字符串,例如:在一個字符串解析項目由多個分隔符
\Inbox \Sent Important "Muy Importante" foo
如果有一個內置的.NET功能我想知道將其分爲「真」格式 - 即
["\Inbox", "\Sent Important", "Muy Importante", "foo" ]
或者這是一個正則表達式嗎?
如果模式是有規律的話,我會通過簡單的字符,直到迭代預期的分隔符被找到。
1.循環字符直到第二個「\」字符。
在這一點上,你知道你的第一個字是由什麼組成。將其存儲在一個變量中。
2.從前面的位置再次循環,直到遇到空格字符。
你現在知道第二部分是什麼。存儲在一個變量中。
3.從以前的位置循環,直到遇到引號。
現在你知道第三部分是什麼了。再次,存儲在一個變量中。
4.從前面的位置循環,直到遇到第二個引號。
您現在有第四部分。第五個是剩下的。兩個都存儲在變量中。
當然,在每一步你都想做一些修整,但是這給了你主要的想法。您將可以使用細分變量來從中執行任何您想要的操作。正則表達式的效率會更高。
不要忘記:這是如果模式是規則的。
就個人而言,我會用正則表達式...
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", " ""*")
這不起作用 - 它把它分成6個項目 – maxp
正確的想法,錯誤的正則表達式。 –
是的,這是(不幸)正是我所做的。 – maxp
然後你做了正確的恕我直言。我認爲在循環字符方面沒有任何問題,很多(高效的)解析器都是這樣做的。並非每一個編碼問題都可以通過單線解決。 :) – Crono