JS拆分先进(我认为)

时间:2015-05-02 20:02:40

标签: javascript split

任何人都可以帮助我吗? 我想在" 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是受欢迎的。

3 个答案:

答案 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):