首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MRZ Parser c#控制台应用程序

MRZ Parser c#控制台应用程序
EN

Stack Overflow用户
提问于 2018-05-06 15:19:08
回答 2查看 1.9K关注 0票数 2

我试图从护照MRZ的名字,但我有困难,它的解析。我想知道名字。但是我得到了一个:-

System.ArgumentOutOfRangeException类型的未处理异常发生在mscorlib.dll中

每当我想知道名字的时候。

这里是我试图解析的地方

代码语言:javascript
复制
 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<<<<<<<<<<<<示例

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-06 15:30:14

我想你可以在"<"上试试"<"而不是"<<"

然后得到nameArraySplit[2]

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2018-05-06 15:36:08

代码语言:javascript
复制
string input = @"GBRTHATCHER03684472111111197184520911522044E12566123BUG<<<<<<<<<<<7CAT<<GRUMPY<MINITE<<<<<<<<<<<<";
string name = Regex.Match(input, @"(?i)([a-z]+)<[a-z]+<+?$").Groups[1].Value;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50201335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档