我需要創建一個擴展方法來對我的字符串進行分析(分割)。用正則表達式解析C#擴展方法中的字符串
例如: 如果我有字符串
COMMAND 1處理過的 「JOB命令」 20160801 9時05分24秒
應當分裂這樣
COMMAND
PROCESSED
「JOB命令」
9時05分24秒
其它示例。 如果我有字符串:
命令2錯誤06 00000032「消息窗口仍處於活動狀態。」 20160801 9時05分24秒
應當分裂像這樣:
COMMAND
ERROR
「消息窗口仍處於活動狀態。」
20160801 9時05分24秒
我對這個解決方案。但我相信有更清潔的解決方案。
我的解決辦法:
public static List<string> GetTokens(this string line)
{
// TODO: Code refactoring:
var res = new List<string>();
var parts = Regex.Split(line, "/[^\\s\"']+|\"([^\"]*)\"|'([^']*)'/g");
var subParts = parts[0].Split(' ');
foreach (var val in subParts)
{
res.Add(val);
}
res.Add(parts[1]);
subParts = parts[2].Split(' ');
foreach (var val in subParts)
{
res.Add(val);
}
res.RemoveAll(f => f.Trim() == "");
return res;
}
我想實現清晰的解決方案。有任何想法嗎?
清潔或工作?這 - '「/ [^ \\ s \」'] + | \「([^ \」] *)\「|'([^'] *)'/ g」' - 顯然不起作用。所以,你的輸入沒有轉義序列,有嗎? –