Kann mir jemand helfen, mein Regex-Muster zu optimieren, damit ich nicht alle Regexes durchlaufen muss? Also stimmt es mit der ganzen Saite überein, wie das Beispiel, das ich zur Verfügung gestellt habe.Wie kann ich diesen Regex optimieren?
$pattern = "/__\(\"(.*)\"/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/__\(\"(.*)\",/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/__\(\'(.*)\'/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/__\(\'(.*)\',/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/_e\(\"(.*)\"/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/_e\(\"(.*)\",/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/_e\(\'(.*)\'/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
$pattern = "/_e\(\'(.*)\',/";
preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
Beispiel:
_e('string');
_e("string");
_e('string', 'string2');
_e("string", 'string2');
__('string');
__("string");
__('string', 'string2');
__("string", 'string2');
Auch wenn es möglich ist, auch unter diese Zeichenfolge übereinstimmen.
"string"|trans
'string'|trans
"string"|trans({}, "string2")
'string'|trans({}, 'string2')
'string'|trans({}, "string2")
"string"|trans({}, 'string2')
Wenn es möglich ist, den Wert string2 auch zu bekommen. Im schlimmsten Fall gibt es in der Datei auch gemischte Einzel- und Doppelkurse.
Wie Sie jetzt auf meinem preg_match_all-Code sehen, gehe ich mit 8 Mustern für das erste und auch mit 8 Mustern für das zweite, um die erste Schnur zu erhalten.
Hinweis: Ich führe dieses Skript nur auf Konsolenbefehl, nicht in PHP-Anwendung. Ich achte also nicht auf die Leistung und es spielt auch keine Rolle.
Vielen Dank für Ihre Hilfe!
Edited
Vielen Dank für die Antwort. Ich habe beide deine Regex versucht, fast da. Meine Frage könnte verwirrend sein. Ich bin kein englischer Sprecher. Ich kopiere Paste von Regex101. Es ist vielleicht einfacher zu verstehen, was ich zu erreichen versuche.
https://regex101.com/r/uX5nqR/2
und dieses zu
https://regex101.com/r/Fxs7yY/1
Bitte überprüfen Sie dies. Ich habe versucht, Übersetzungen aus Wordpress-Projekt und auch Zweigdatei, die mit "Trans" Filter zu extrahieren. Ich weiß, dass es mo po Editor gibt, aber der Editor erkennt die Dateiendung, die ich verwendet habe, nicht.
Danke, Jakob! Ich habe versucht, deine Regex, ich denke, meine Frage war verwirrend. also habe ich das beispiel im regex tester zur verfügung gestellt. – user3392555
Hey, danke für die Klarstellung. Ich habe meine Antwort mit zwei angepassten Regexes aktualisiert. –
Ich dachte, ich antworte schon auf deine Antwort. Nun, ich habe es vergessen. Der erste Regex funktioniert perfekt! der zweite funktioniert noch nicht wie erwartet. Ich werde versuchen, es herauszufinden. Danke, Jakob! Das ist große Hilfe von dir ... – user3392555