C# 根据掩码查找列表中缺少的项

C# 根据掩码查找列表中缺少的项,c#,.net,regex,C#,.net,Regex,我想知道这在c#中是否可行。我有一个值列表(条形码字符串),比如: 我想确定哪些项目没有被扫描(不在列表中,在本例中为55Y555)。问题是条形码可以是任何东西:只是数字,或者其中有一个或多个字母字符-即A123456、123456A等。但是,每次扫描时它都是相同的条形码掩码 有人能想出一种可能的方法来根据条形码掩码搜索结果字符串,以确定哪些项目不在列表中吗?我考虑过regex,但什么都想不出来 感谢您的帮助 Jim正则表达式不能解决这个问题-它们只能匹配存在的东西,而不能匹配缺少的东西。我将建

我想知道这在c#中是否可行。我有一个值列表(条形码字符串),比如:

我想确定哪些项目没有被扫描(不在列表中,在本例中为55Y555)。问题是条形码可以是任何东西:只是数字,或者其中有一个或多个字母字符-即A123456、123456A等。但是,每次扫描时它都是相同的条形码掩码

有人能想出一种可能的方法来根据条形码掩码搜索结果字符串,以确定哪些项目不在列表中吗?我考虑过regex,但什么都想不出来

感谢您的帮助


Jim

正则表达式不能解决这个问题-它们只能匹配存在的东西,而不能匹配缺少的东西。我将建议一种不同的方法:

  • 拿出你的价值清单
  • 删除其中的字母,只留下数字(类似于
    resultString=Regex.Replace(subjectString,@“\D+”,“”);
  • 在您期望的范围内(例如从123456到444444)迭代一个数字列表,并保留/打印列表中找不到的数字

我不明白-正则表达式如何匹配不存在的东西?您是否有一个期望值的列表,并希望对照它进行检查?我不知道在正则表达式中是否可以。不,除了起始条形码(如A123456)和结束条形码(如A444444),我没有期望值的列表。但问题是,字符可能会出现在条形码的任何位置,例如BC123456 123456BC 12BC3456。你可以用正则表达式解决这个问题,否则,正如下面的答案所说,你可以删除所有字母,然后直接通过它们来写感谢Tim-这一天一定很慢,我想不出办法;)
11Y111
22Y222
33Y333
44Y444
66Y666