-2

我有搜索查询

string input = "FirstName=\"xy z\" LastName=\"Huber\"";

想用正则表达式拆分它

我想要一个带有以下标记的字符串数组:

FirstName=\"xy z\"
LastName=\"Huber\"

如您所见,标记用双引号保留空格

我的正则表达式

("[^"]+"|\w+)\s*

几乎不想要我想要..需要修复更多它得到

FirstName= \"xy z\" LastName = \"Huber\"

4

1 回答 1

0

更改 I4V 的答案以匹配 OP 要求

似乎 OP 想要字符串 FirstName=\"xy z\"LastName=\"Huber\"不是键值对,因此解决方案是简单地使用 I4V 正则表达式中的匹配项。

string input = "FirstName=\"xy z\" LastName=\"Huber\"";
var matches = Regex.Matches(input, @"(\w+?)=\""(.+?)\""")
                   .OfType<Match>()
                   .Select(x => x.Value)
                   .ToArray();

这将为您提供值的字符串数组。

编辑对于 OP 询问的具体情况

string input = "FirstName=\"xy z\" LastName=\"Huber\"";
var matches = Regex.Matches(input, @"[^\s\""]+(?:\"".*?\"")?")
                   .OfType<Match>()
                   .Select(x => x.Value)
                   .ToArray();
于 2013-09-05T12:44:42.527 回答