我需要帮助来设置可将某些字符串与某些逗号分隔的正则表达式。
这是我到目前为止拥有的正则表达式:
(?<string>(?<=")(?:[^""\\]|\\.)*(?="))|(?<comma>\,)
这个想法是将通过用引号引起来的字符串进行分组以及逗号的分组。一个用例是:
"Dog", "cat", "Dog, cat"
所需的输出:
字符串组(3个元素):
逗号组(2个元素):
问题是我的正则表达式模式也将逗号作为字符串读取,因为它用引号引起来,所以我的输出是:
字符串组(5个元素):
逗号组(0个元素):
答案 0 :(得分:0)
您可以尝试:
var testString = "\"Dog\", \"cat\", \"Dog, cat\"";
var splitted = Regex.Split(testString, @"""\s*,\s*""");.Select(s => s.Trim('"'));
使用的模式:"\s*,\s*"
,以逗号分隔,仅在引号之间:", "
,中间也可以有空格。
它还会在拆分后从元素中修剪"
,因为第一个元素和最后一个元素将具有附加的格纹:)
答案 1 :(得分:-1)
您应该完全忽略逗号,而只将引号内的非引号字符隔离开。进行比赛。接下来直到比赛失败,您应该全部获得比赛。