Ich habe Regexp, die Werte zwischen Klammern extrahiert.Regexp, zwischen Klammern gefangen, Javascript
Es ist die meiste Zeit arbeiten, aber nicht, wenn es endet mit einem Klammern
var val = 'STR("ABC(t)")';
var regExp = /\(([^)]+)\)/;.
var matches = regExp.exec(val);
console.log(matches[1]); //"ABC(t"
Was ich will, ist "ABC(t)".
Irgendwelche Ideen, wie ich meine regexp dies achive ändern können?
Aktualisieren Der Wert steht immer innerhalb der Klammern.
Einige Beispiele:
'ASD("123")'; => '123'
'ASD(123)'; => '123'
'ASD(aa(10)asda(459))'; => 'aa(10)asda(459)'
Also zunächst ist es ein Text (immer Text). Dann gibt es ein (und es endet immer mit a). Ich möchte den Wert zwischen.
Sie die falsche Schließung entgangen) '', so dass Ihre Erfassungsgruppe endet und dann die Sie passen ') '(wenn es andersherum sein sollte). Abstimmung außerhalb des Themas, weil das Problem ein typografischer Fehler ist. – Quentin
Wenn es keine speziellen Einschränkungen für die Eingabe gibt, ist dies mit einem Regex ziemlich schwer zu lösen. Abhängig davon, was in der Eingabe zulässig ist und was nicht, kann nur ein tatsächlicher Parser dies korrekt tun. – deceze
was in diesem Fall übereinstimmen soll ''irgendein Text (num (10a) ss) STR (" ABC (t) ")''? – RomanPerekhrest