任何人都可以帮助我吗? 我想在" 0000"上拆分一个十六进制字符串,但这个" 0000"必须遵循" 00"以外的任何内容。我试图分裂(),但任何解决方案都可以为我服务。
编辑:解释......并纠正一些事情:P
这是我使用的六弦乐的一个例子。 http://pastebin.com/u68bG6PP(这是Shift-JIS中的编码文本(下面有一些特殊例子))
" 82824f4f00000000828250500000000082825151000000008282525200000000828253530000000082825454000000008282555500000000"
这里" 0000"表示这是文本行的结尾,因此应该在最后一个" 0000"在下一行之前(从不以" 00"开始)。
以上摘录基本上是必要的:
82824f4f0000 828250500000 828251510000 828252520000 828253530000 828254540000 828255550000
而且,我希望现在的解释很好。
另外一个问题,我从来没有真正接触到Shift_JIS,所以任何方式将其转换为unicode进行显示,或者只是将其显示为SJIS是受欢迎的。
答案 0 :(得分:3)
您可以在negative lookahead使用正则表达式:
yourHex.split(/0000(?!00)/g)
这是您的问题描述的明确翻译。然而,它可能不一定是你想要的,因为它产生(可能)令人惊讶的结果:
"10000001".split(/0000(?!00)/g)
// => ["10", "01"]
如果你希望四个零之前没有另外的零,你可能不得不使用另一种技术,因为JS正则表达式不支持lookbehind。
答案 1 :(得分:0)
如果我理解,你想分开" 0000"但你想离开" 000000"单独?
例如,"00001111000000222200003233"
会导致
["11110000002222","333"]
?
"00001111000000222200003333".replace(/000000/g,"token")
.split("0000")
.map(function (el) {
return el.replace(/token/g,"000000");
});
//["11110000002222","333"]
否定前瞻会产生不同的结果
"00001111000000222200003333".split(/0000(?!00)/)
//["", "11110", "02222", "3333"]
不确定你在寻找什么
答案 2 :(得分:-1)
我认为您的问题需要更多解释,也许需要一些代码来支持它。我认为这就是你要求的。
def myfunction(a, b):