Regex, um bestimmte Funktionen und deren Argumente in Dateien abzugleichen

Ich arbeite an einem Gettext-Javascript-Parser und bin auf dem Parsing-Regex festgefahren.

Ich muss jedes Argument abfangen, das an einen bestimmten Methodenaufruf übergeben wird_n( und_(. Zum Beispiel, wenn ich diese in meinen Javascript-Dateien habe:

_("foo") // want "foo"
_n("bar", "baz", 42); // want "bar", "baz", 42
_n(domain, "bux", var); // want domain, "bux", var
_( "one (optional)" ); // want "one (optional)"
apples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples) // could have on the same line two calls.. 

Dies verweist auf diese Dokumentation:http: //poedit.net/trac/wiki/Doc/Keyword

Ich plane es in zwei mal zu tun (und zwei Regex):

Alle Funktionsargumente für @ abfang_n( oder_( Methodenaufrufe fang nur die fadenlangen

Grundsätzlich hätte ich gerne einen Regex, der sagen könnte: "Fang alles nach_n( oder_( und stoppenin der letzten Klammer) eigentlich wenn die Funktion erledigt ist. Ich weiß nicht, ob es mit Regex und ohne Javascript-Parser möglich ist.

Was auch getan werden könnte, ist "fange jede" Zeichenkette "oder" Zeichenkette "nach_n( oder_( und halt am Ende der Zeile ODER am Anfang eines neuen_n( oder_( Zeichen.

ei allem, was ich getan habe, bin ich entweder festgefahren_( "one (optional)" ); mit der inneren Klammer oderapples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples) mit zwei Anrufen auf derselben Leitung.

Hier ist, was ich bisher implementiert habe, mit unvollkommener Regex: a Generischer Parser und diejavascript one oder der Lenker ein

Antworten auf die Frage(12)

Ihre Antwort auf die Frage