C# 在“中拆分字符串”;谷歌";风格方式

C# 在“中拆分字符串”;谷歌";风格方式,c#,.net,parsing,string,split,C#,.net,Parsing,String,Split,我正在尝试创建一个函数,将字符串拆分为搜索词。使用此代码可以很好地工作: string TestString = "This is a test"; string[] Terms; Terms = TestString.Split(" "); 这将把我的字符串分成4个字符串:“This”、“is”、“a”、“test”。 但是,我希望引号中的单词被视为一个单词: string TestString = "This \"test will\" fail"; string[] Terms; Ter

我正在尝试创建一个函数,将字符串拆分为搜索词。使用此代码可以很好地工作:

string TestString = "This is a test";
string[] Terms;
Terms = TestString.Split(" ");
这将把我的字符串分成4个字符串:“This”、“is”、“a”、“test”。 但是,我希望引号中的单词被视为一个单词:

string TestString = "This \"test will\" fail";
string[] Terms;
Terms = TestString.Split(" ");
这将把我的字符串拆分为4个字符串,同样是:“This”,“test”,“will”,“fail”

我想要的是将最后一个字符串拆分为3个字符串:“This”、“test will”、“fail”

有人知道怎么做吗?

尝试使用正则表达式:

var testString = "This \"test will\" fail";
var termsMatches = Regex.Matches(testString, "(\\w+)|\"([\\w ]+[^ ])\"");

额外积分:让正则表达式处理嵌入在报价部分的报价。您可以选择如何转义嵌入的引号-使用“\”、将引号加倍或其他机制。但单引号也必须是可嵌入的(反斜杠也是如此)。