类似谷歌的搜索查询拆分正则表达式
本文关键字:查询 拆分 正则表达式 搜索 谷歌 | 更新日期: 2023-09-27 18:30:18
我有搜索查询
string input = "FirstName='"xy z'" LastName='"Huber'"";
想使用正则表达式来拆分它
我想要一个带有以下令牌的字符串数组:
FirstName='"xy z'"
LastName='"Huber'"
如您所见,标记保留了双引号中的空格
我的正则表达式
("[^"]+"|''w+)''s*
几乎不想要我想要..需要修复更多
名字= ''"xy z''" 姓氏 = ''"Huber''"
更改 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();