有个字符串用两种分隔符分隔
@^#aaa$^%bbb$^%ccc$^%ddd@^#eee$^%fff$^%ggg$^%hhh@^#xxx$^%yyy$^%zzz$^%ztwe@^#
我想用正则 /@^#[^(@^#)]+/g来取第一层 但是[]里面的 非 不起作用 直接写 /@^#xx$^%xx$^%xx$^%+/g这种形式不好写两个分隔符不能拆开 aaa bbb也只是表示是被分隔的内容 实际内容比较复杂 分隔符也不是我给出的 实际的比较复杂

解决方案 »

  1.   

    我要把两个@^#中间的内容取出来 中间的内容又由$^%分隔 这两个分隔符有重复的字符 
    字符串就是类似这种的
    @^#aaa$^%bbb$^%ccc$^%ddd@^#eee$^%fff$^%ggg$^%hhh@^#xxx$^%yyy$^%zzz$^%ztwe@^# 我要取出 aaa$^%bbb$^%ccc$^%ddd  eee$^%fff$^%ggg$^%hhh  xxx$^%yyy$^%zzz$^%ztwe 然后再次取出里面的内容 第二次好写
    s="@^#aaa$^%bbb$^%ccc$^%ddd@^#eee$^%fff$^%ggg$^%hhh@^#xxx$^%yyy$^%zzz$^%ztwe@^#";
    s.match(/.../g)最方便的是/@^#[^(@^#)]+/g这种写法 我的意思是@^#后面跟着的非(@^#) [^@^#]这样写肯定不行 另外一个分隔符也有@^#这里的字符 要取的字符串也包含有这些字符 只能整体非 不知道怎么写