string[] s = File.ReadAllLines("test.txt");
string reg = @"(CR\d\d) Mark DCode=29 \t(S\d\d) (.+)";
List<string> s1 = new List<string>();
List<string> s2 = new List<string>();
for (int i = 0; i < s.Length; i++)
{
Match m = Regex.Match(s[i], reg);
if (s1.Where(x => x == m.Groups[2].ToString()).Count() == 0)
{
s1.Add(m.Groups[2].ToString());
}
if (s2.Where(x => x == (m.Groups[1].ToString()+m.Groups[3].ToString())).Count() == 0)
{
s2.Add(m.Groups[1].ToString()+m.Groups[3].ToString());
}
}
Console.WriteLine(string.Join(",",s1.ToArray()));
Console.WriteLine(string.Join(",", s2.ToArray()));
Console.ReadKey();
test.txt记录的是你的数据,请叫我雷锋
string reg = @"(CR\d\d) Mark DCode=29 \t(S\d\d) (.+)";
List<string> s1 = new List<string>();
List<string> s2 = new List<string>();
for (int i = 0; i < s.Length; i++)
{
Match m = Regex.Match(s[i], reg);
if (s1.Where(x => x == m.Groups[2].ToString()).Count() == 0)
{
s1.Add(m.Groups[2].ToString());
}
if (s2.Where(x => x == (m.Groups[1].ToString()+m.Groups[3].ToString())).Count() == 0)
{
s2.Add(m.Groups[1].ToString()+m.Groups[3].ToString());
}
}
Console.WriteLine(string.Join(",",s1.ToArray()));
Console.WriteLine(string.Join(",", s2.ToArray()));
Console.ReadKey();
test.txt记录的是你的数据,请叫我雷锋
string reg = @"(CR\d\d) Mark DCode=29 \t(S\d\d) (.+)";
var s1 = s.Select(x => Regex.Match(x, reg)).Where(x => s1.All(y => y != x.Groups[2].ToString())).Select(x => m.Groups[2].ToString()).ToArray();
var s2 = s.Select(x => Regex.Match(x, reg)).Where(x => s1.All(y => y != x.Groups[3].ToString())).Select(x => m.Groups[3].ToString()).ToArray();
Console.WriteLine(string.Join(",",s1));
Console.WriteLine(string.Join(",", s2));
第二串 字符 怎么加 空格 "CR20 Missing" 这样
补充 这样的捉不到 额 CR20 Mark DCode=29 S30 Wrong Component Orientation
CR20 Mark DCode=29 S30 Wrong Component Orientation
CR21 Mark DCode=29 S29 Wrong Component Orientation
CR22 Mark DCode=29 S28 Missing component
CR22 Mark DCode=29 S28 Missing component
CR23 Mark DCode=29 S27 Wrong Component Orientation
CR24 Mark DCode=29 S25 Missing component
L1 Mark DCode=2 S02 Missing component
JJ Mark DCode=29 S30 Wrong Component Orientation
补充 这样的捉不到 额 CR20 Mark DCode=29 S30 Wrong Component Orientation
CR20 Mark DCode=29 S30 Wrong Component Orientation
CR21 Mark DCode=29 S29 Wrong Component Orientation
CR22 Mark DCode=29 S28 Missing component
CR22 Mark DCode=29 S28 Missing component
CR23 Mark DCode=29 S27 Wrong Component Orientation
CR24 Mark DCode=29 S25 Missing component
L1 Mark DCode=2 S02 Missing component
JJ Mark DCode=29 S30 Wrong Component Orientation
好吧,看来你真的啥也不会啊
你这样也好改,只要把正则表达式修改一下 string reg = @"([A-Z]{1,2}\d{1,2} )Mark DCode=\d{1,2} \t(S\d\d) (.+)";
这个就没问题的
将空格作为分隔符,将字符串分解为字符数组
然后自己重新拼接