我想了解一下正则表达式。我有一个字符串,用十六进制代码表示车辆识别号(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个字节作为结果?
答案 0 :(得分:-2)
如果我错过了什么,请纠正我。
我的理解是,您的字符串为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'