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 fadenlangenGrundsä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