我正在尝试返回并打印设备中 SIM 卡的 ICCID;SIM 卡来自不同的供应商,因此长度不同(19 位或 20 位)。因此,我正在寻找一个将提取 ICCID 的正则表达式(以一种与直接围绕它的非单词字符无关的方式)。
鉴于 ICCID 被指定为以“89”开头的 19-20 位字符串,我只是选择了:
(89\d{17,18})
这是我测试过的最成功的模式(以及由于以下原因而被拒绝的一些模式)。
在我从中提取它的字符串中,ICCID 后面紧跟一个回车符,然后是一个换行符,但是一些针对以 , 终止它的测试\r
,\n
甚至\b
无法正常工作(我正在使用的程序是内部一个建立在python上,所以我怀疑这就是它用于正则表达式的东西)。此外,简单地使用(\d{19,20})
最终提取了 20 位 ICCID 的最后 19 位(作为第三个也是最后一个有效匹配)。同样,我(\d{19,20})?
原则上排除了,因为我希望它在找到前 19 位数字时完成。
所以我的问题是:我应该使用我选择的模式,还是有更好的表达式(不使用非单词字符来构建字符串)将返回可变长度数字字符串的最长子字符串?