我有一个字符串值列表,如下所示:
GREEN,BLUE,BLUE
BLUE,BLUE,GREEN
GREEN,RED,RED
RED,BLUE,BLUE
BLUE,RED,RED
GREEN,BLUE,BLUE
RED,GREEN,BLUE
我将使用foreach遍历每一行并找到唯一值。
我需要一个返回true的正则表达式,如果有颜色重复(RED,GREEN,RED),则没有颜色重复(RED,GREEN,BLUE)和false。
正则表达式是什么样的?
答案 0 :(得分:3)
您可以尝试使用 Linq 而不是正则表达式:
C:\Users\myUser\wekafiles
测试:
using System.Linq;
...
string source = "BLUE,BLUE,GREEN";
// do we have three distinct items?
bool allDistinct = source.Split(',').Distinct().Count() >= 3;
结果:
List<string> list = new List<string>() {
"GREEN,BLUE,BLUE",
"BLUE,BLUE,GREEN",
"GREEN,RED,RED",
"RED,BLUE,BLUE",
"BLUE,RED,RED",
"GREEN,BLUE,BLUE",
"RED,GREEN,BLUE",
};
var result = list
.Select(source => $"{source,-15} {source.Split(',').Distinct().Count() >= 3}");
Console.Write(string.Join(Environment.NewLine, result));
编辑: Linq 可以帮助解决一般情况:
GREEN,BLUE,BLUE False
BLUE,BLUE,GREEN False
GREEN,RED,RED False
RED,BLUE,BLUE False
BLUE,RED,RED False
GREEN,BLUE,BLUE False
RED,GREEN,BLUE True