我有搜索查询
string input = "FirstName=\"xy z\" LastName=\"Huber\"";
想用Regex分割它
我想要一个包含以下标记的字符串数组:
FirstName=\"xy z\"
LastName=\"Huber\"
如您所见,令牌用双引号
保留空格我的正则表达式
( “[^”] +“| \ W +)\ S *
几乎不想要我......需要修复更多它
FirstName = \“xy z \”LastName = \“Huber \”
答案 0 :(得分: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();