Milchtrinker: Bei Kommas, die nicht in Klammern sind trennen

Hallo zuasmmen

Ich weiss nicht, wie ich das anstellen soll:
Ich möchte einen Javascript-string bei allen Kommas trennen (split()), die nicht in einer Klammer sind:

Also der String:

ab,cd,ef(gh,ij,kl),mn,op(qr(st,uv),wx),yz

soll so gesplittet werden:

ab|cd|ef(gh,ij,kl)|mn|op(qr(st,uv),wx)|yz

Ich hoffe, Ihr könnt mir helfen....

Vielen Dank und Gruss

  1. @@Milchtrinker:

    nuqneH

    Ich möchte einen Javascript-string bei allen Kommas trennen (split()), die nicht in einer Klammer sind:

    split() ist dann wohl kaum verwendbar; du musst dir das selber schreiben. Pseudocode:

    geklammert = false
    Klammerzähler = 0
    Schleife über alle Zeichen des Strings
      wenn Zeichen = '('
        geklammert = true
        Klammerzähler++
      wenn Zeichen = ')'
        Klammerzähler--
        wenn Klammerzähler = 0
          geklammert = false
      wenn Zeichen = ',' und !geklammert
        trenne Substring vor Zeichen ab

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. @@Gunnar Bittersmann:

      nuqneH

      geklammert = false

      Ach Ingrid, das Flag ist doch gar nicht vonnöten.

      wenn Zeichen = ',' und !geklammert

      Hier kann doch auch der Klammerzählerstand abgefragt werden:

      Klammerzähler = 0
      Schleife über alle Zeichen des Strings
        wenn Zeichen = '('
          Klammerzähler++
        wenn Zeichen = ')'
          Klammerzähler--
        wenn Zeichen = ',' und Klammerzähler = 0
          trenne Substring vor Zeichen ab

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
  2. Hallo,

    Ich weiss nicht, wie ich das anstellen soll:

    offensichtlich nicht.

    Ich möchte einen Javascript-string bei allen Kommas trennen (split()), die nicht in einer Klammer sind:

    Und möchtest dabei bitte in deinem existierenden Thread zu diesem Thema bleiben, anstatt gleich wieder einen aufzumachen.

    Ciao,
     Martin

    --
    Die letzten Worte des Helden:
    Feigling! Traust dich ja doch nicht!
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(