我试图从护照MRZ的名字,但我有困难,它的解析。我想知道名字。但是我得到了一个:-
System.ArgumentOutOfRangeException类型的未处理异常发生在mscorlib.dll中
每当我想知道名字的时候。
这里是我试图解析的地方
if (string.IsNullOrEmpty(name) || name.Length < 44)
{ }
var nameArraySplit = name.Substring(5).Split(new[] { "<<" }, StringSplitOptions.RemoveEmptyEntries);
name = nameArraySplit.Length >= 2 ? nameArraySplit[1].Replace("<", " ") : nameArraySplit[0].Replace("<", " ");MRZ GBRTHATCHER0368447211111119718452091 1522044E12566123BUG<<<<<<<<<<<7 CAT<<GRUMPY<MINITE<<<<<<<<<<<<示例
谢谢
发布于 2018-05-06 15:30:14
我想你可以在"<"上试试"<"而不是"<<"
然后得到nameArraySplit[2]
string name = "GBRTHATCHER03684472111111197184520911522044E12566123BUG<<<<<<<<<<<7CAT<<GRUMPY<MINITE<<<<<<<<<<<< ";
var nameArraySplit = name.Substring(5).Split(new[] {"<" }, StringSplitOptions.RemoveEmptyEntries);
name = nameArraySplit.Length >= 2 ? nameArraySplit[2] : nameArraySplit[0].Replace("<", " ");c# online:https://dotnetfiddle.net/HM1WeG
发布于 2018-05-06 15:36:08
string input = @"GBRTHATCHER03684472111111197184520911522044E12566123BUG<<<<<<<<<<<7CAT<<GRUMPY<MINITE<<<<<<<<<<<<";
string name = Regex.Match(input, @"(?i)([a-z]+)<[a-z]+<+?$").Groups[1].Value;https://stackoverflow.com/questions/50201335
复制相似问题