繁体   English   中英

特定VIN模式的正则表达式

[英]Regular Expression for specific VIN Pattern

我想学习一些有关正则表达式的知识。 我有一个字符串,以十六进制代码表示车辆识别号(VIN)。

问题是,字符串将具有不同的模式,具体取决于我要使用它的汽车。

第一种模式如下(空格和换行符仅用于更好的可见性):

49 02 01 00 00 00 xx
49 02 02 xx xx xx xx
49 02 03 xx xx xx xx
49 02 04 xx xx xx xx
49 02 05 xx xx xx xx

其中xx是包含数据的字节。 如您所见,数据由17个字符组成。

汽车可能返回的第二种模式如下(空格和换行符只是为了获得更好的可见性):

014
0: 49 02 01 xx xx xx
1: xx xx xx xx xx xx xx
2: xx xx xx xx xx xx xx

其中xx是包含数据的字节。 如您所见,数据还包含17个字符。

我只想阅读xx部分,并将结果连接到一个字符串,我将使用str.decode("hex")对其进行解码以获得VIN。

因此,我的问题是:是否可以将所有这些内容打包在一个正则表达式中以得到最后的17个字节?

如果我错过了什么,请纠正我。

我的理解是您的字符串是490201000000xx490202xxxxxxxx490203xxxxxxxx490204xxxxxxxx490205xxxxxxxx并且您要根据位置从中提取“ x”。

我写了一个小代码,可以用Javascript处理。

对于第二种情况,您可以仅删除前6个字符吗?

var a = '490201000000xx490202xxxxxxxx490203xxxxxxxx490204xxxxxxxx490205xxxxxxxx';
var reg = /.{12}(.{2}).{6}(.{8}).{6}(.{8}).{6}(.{8})/g;
var b = reg.exec(a);
var c = b.splice(1, 4);
var d = c.join(''); // d = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM