随笔 - 6, 文章 - 0, 评论 - 29, 阅读 - 14205
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

正则表达式应用于文本操作--备忘1

Posted on   魔佛之间  阅读(380)  评论(0编辑  收藏  举报
对于每一个已测PCB板,生成这样一个日志文本:
BLT, 608032008919,OK, 20060803, 06:15:25, 20, 00000000000000, 608035B61373, 20, 00, 00, 21.0, 1001, OK, 0000, 608032008919, 1002, OK, 0000, 150.343700, 1003, OK, 0000, 138, 1004, NG, 1031, COMM ERR,

要捕获的字段:
BLT, 608032008919,OK, 20060803, 06:15:25, 20, 00000000000000, 608035B61373, 20, 00, 00, 21.0, 1001, OK, 0000, 608032008919, 1002, OK, 0000, 150.343700, 1003, OK, 0000, 138, 1004, NG, 1031, COMM ERR ,

说明:
红色正体字为必须捕获字段,蓝色斜体字是可选的.
OK字段有两种可能,OK或者NG,OK表示Pass,NG表示Failed,如果为NG,蓝色斜体字会有不同的条目,每一个条目它又分为四个字段,其中淡红色为捕获字段,为简单起见,只捕获第一个为NG的条目.

捕获表达式:
(?<FIXTURE>[\w ]{2,}),\s*(?<FACTORYSN>\w{12}),\s*(?<STATUS>OK|NG),\s*(\w{8}),\s*([\:\w]{8})*,\s*\w{2},\s*\w{12,16},\s*(?<SERIALNUMBER>\w{8,12}),\s*\w{2},.{3,16},(.*?\s*(?<TESTNAME>\w{4}),\s*(NG),\s*(?<FAILCODE>\w{4,6}).{1,})*


文本2:
ESN,13210624404,07773818511060490560165640,607182005431,000000,CVAGA007572,NG,20060808,16:20:56,20,20060626220351,607185A17429,06,00,00,time,8001,OK,0000,84A21D94,8002,OK,0000,13210624404,8003,OK,0000,CVAGA007572,8004,OK,0000,607182005431,8005,NG,0005,V9200M10,8006,OK,0000,000000,8007,OK,0000,84A21D94,8008,OK,0000,07773818511060490560,8009,OK,0000,-,800A,NG,80A1,-

表达式:
(?<FIXTURE>[\w ]{2,}),\s*([\d ])*,\s*(?<AKEY>\w{26})*,\s*(?<FACTORYSN>\w{12}),\s*(?<SPC>\w{6})*,\s*(?<SERIALNUMBER>\w{10,12})*,\s*(?<STATUS>OK|NG),(?:.*?),\s*(?<SN>\w{10,12}),(.*?(?<TESTNAME>\w{4}),\s*(?:NG),\s*(?<FAILCODE>\w{4}).{1,})*







编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示