Rolf b: Wo hakt es bei meinem regulären Ausdruck?

Beitrag lesen

Falsch ist, dass du string.match verwendest, der liefert die Treffergruppen nicht. Nimm RegExp.exec, also:

var rx = /pattern/g;
var match = rx.exec(suchstring);

Aber das ist nicht alles, und ich habe gerade auch keine Ahnung wo das Problem ist. Wenn der Teil im dritten Klammerpaar zu lang wird, scheitert die Regex.

Das geht kaputt:
rx.exec("(q0,q1,q2,q3)(a,b)((q0,a,q1),(q0,b,q3),(q1,a,q3),(…q2,a,q2),(q2,b,q2),(q3,a,q3),(q3,b,q3)),(q0),(q2)")

Das funktioniert:
rx.exec("(q0,q1,q2,q3)(a,b)((q0,a,q1),(q0,b,q3),(…q2,a,q2)),(q0),(q2)")

Zuerst dachte ich, das Unicode-Zeichen ... wäre ein Problem, aber das war's nicht. Entweder habe ich Knöpfe auf den Augen und erkenne den Musterfehler nicht, oder das Ding läuft intern auf einen Overflow und gibt deshalb null zurück. Ich muss jetzt weg, sorry, ich gucke morgen noch mal.

Rolf