#1 18. Mai 2015 Hallo. Ich bräuchte mal Hilfe bei einer Regex. Ich bekomme es hin Templates nach ''|translate zu scannen. Leider jedoch nicht mit der Ausnahme das es auch Templates mit 'Mein Name ist :name'|translate({":name":"Heinz"}) gibt. Also mit Optionen. Um zu sagen kann vorkommen, muss aber nicht gibt es ja ? ... Wie kann ich sagen ''|translate und (.*) kann muss aber nicht? einfach ein ? hinter ) bringt natürlich nichts weil das ja nur auf ein Zeichen achtet. Eventuell '.*'|translate((.*))? hm Wäre echt für Hilfe dankbar! + Multi-Zitat Zitieren
#2 18. Mai 2015 AW: PHP: Regex für : name | translate [/ b ] Regx : 'Mein Name ist (\w+)' (| translate \((.*)\))? Du müsstest die () mit backslash entwerten weil das sonst als Metazeichen gilt . Bin aber auch nicht ganz schlau geworden wie der String aussieht der Verarbeitet wird und welche Info genau alles ausgelesen werden soll . + Multi-Zitat Zitieren
#3 18. Mai 2015 AW: PHP: Regex für : name | translate () optional [/ b ] Ok . Also der String wäre zum Beispiel wie folgt {{ 'Hallo' | translate }} oder {{ 'Hallo mein Name ist :name' | translate ({ "name" : "Hans" }) }} Ich brauche das zwischen ' & ' also Hallo oder Hallo mein Name ist : name und wenn verfügbar die Optionen also den JSON String ... Ist nen Twig Filter . Und ich baue nen Scanner für die Strings die im Backend übersetzt werden können sollen . + Multi-Zitat Zitieren
#4 18. Mai 2015 AW: PHP: Regex für : name | translate () optional [/ b ] [ php ] preg_match ( "@{{ '(.*)'(\|translate|\|translate\((.*)\))? }}@Usi" , $str , $m ); $m[1] ist Name Wenn $m[2] vorhanden dann $m[3] ist JSON String + Multi-Zitat Zitieren
#5 18. Mai 2015 AW: PHP: Regex für : name | translate () optional [/ b ] Danke . Leider findet er die Strings mit "Optionen" überhaupt nicht . Stehen zumindest nicht in der Ergebnisliste . Komisch . Sieht richtig aus irgendwie ... + Multi-Zitat Zitieren
#6 19. Mai 2015 AW: PHP: Regex für : name | translate () optional [/ b ] @ Tiffany Dicks [ URL = "http://www.regexe.de/" ] Hier [/ URL ] kannst Du Regex online auf seine Funktion testen und die Seite [ URL = "http://weitz.de/regex-coach/" ] The Regex Coach - interactive regular expressions [/ URL ] könnte auch hilfreich sein + Multi-Zitat Zitieren
#7 24. Mai 2015 AW: PHP: Regex für : name | translate () optional [/ b ] Um das sauber zu parsen brauchst du einen rekursiven regulären Ausdruck . [ url = "http://php.net/manual/de/regexp.reference.recursive.php" ] PHP : Recursive patterns - Manual [/ url ] Probier ' damit mal rum, sollte auf jeden Fall machbar sein ;) Der reguläre Audruck von raid-rush geht zwar auch, fliegt dir aber sehr schnell auseinander. + Multi-Zitat Zitieren