复杂字符串拆分C#

bkm*_*bkm 0 .net c# string parsing split

我有这样的输入文件:

input.txt中

aa@aa.com bb@bb.com "Information" "Hi there"
cc@cc.com dd@dd.com "Follow up" "Interview"
Run Code Online (Sandbox Code Playgroud)

我用过这个方法:

string[] words = item.Split(' ');
Run Code Online (Sandbox Code Playgroud)

但是,它会将每个单词与空格分开.我也在引号字符串中有空格但我不会拆分这些空格.

基本上我想将此输入从文件解析为此输出:

From = aa@aa.com
To = bb@bb.com
Subject = Information
Body = Hi there
Run Code Online (Sandbox Code Playgroud)

如何在C#中拆分这些字符串?

Hos*_*Rad 5

只是你可以Regex按照这个问题的说法使用

var stringValue = "aa@aa.com bb@bb.com \"Information\" \"Hi there\"";

var parts = Regex.Matches(stringValue, @"[\""].+?[\""]|[^ ]+")
            .Cast<Match>()
            .Select(m => m.Value)
            .ToList();

//parts: aa@aa.com
          bb@bb.com
          "Information"
          "Hi there"
Run Code Online (Sandbox Code Playgroud)

您也可以尝试Replace删除这些"字符的功能.