Probleme mit preg_replace

  • Hallo zusammen,


    ich habe sehr rätselhafte Probleme mit mit der Funktion preg_replace. Ein String, der aus einer anderen Funktion kommt und somit dort nicht unmittelbar erst definiert wurde, lässt sich mit preg_replace und einem regulären Ausdruck nicht ersetzen. Dies ging aber noch vor kurzer Zeit und ich habe seitdem eigentlich nichts geändert.


    Jetzt kommt das komische: Ich habe diesen String mir ausgeben lassen, kopiert und dann innerhalb dieser Funktion in eine andere Var gepackt. Wenn ich diese durch den selben regulären Ausdruck laufen lasse, funktioniert es aber und das gewünschte wird ersetzt.


    Wichtig ist noch, dass die beiden Strings wirklich zu 100% identisch sind.


    Ich kann mir das nicht erklären. Glaube fast schon, dass es sich um einen Bug handelt...


    Das ist der Code:


    PHP
    1. $foo = '33. / 140 Remigiusz Szeja TW 36 18 - ...wurde gefeuert! 33. / 140 Artur Sacha TW 27 14 62.500.001 € FcKalikratia 33. / 140 Linas Balciunis MS 17 4 - A-Jugend 15. / 140 Masilela Chidakwa LMD 18 6 9.000.002 € Sunshine Lions 12. / 140 Holger Lobing RM 19 5 330.000 € FV Faurndau 11. / 140 Keke Hämäläinen LV 18 6 6.950.001 € Gossner Fighter 11. / 140 Remi Hindenes ZM 18 6 7.950.001 € F.C.Hollywood 31. / 139 Carsten Leegaard ZM 17 3 1.050.001 € Nymphoman F.C. 30. / 139 Remi Hindenes ZM 17 5 - A-Jugend 30. / 139 Masilela Chidakwa LMD 17 5 - A-Jugend 26. / 139 Keke Hämäläinen LV 17 5 - A-Jugend 15. / 139 Carsten Leegaard ZM 17 2 - A-Jugend 6. / 139 Holger Lobing RM 18 3 - A-Jugend 20. / 138 John Madsen TW 17 5 6.786.669 € 1. FC Rinkes 08 18. / 138 John Madsen TW 17 5 - A-Jugend 21. / 137 Axel Rink RS 17 5 2.860.002 € Hannover Empire 14. / 137 Axel Rink RS 17 5 - A-Jugend 13. / 137 Ogün Çörekçi LM 17 5 8.950.002 € Abstinenz 11. / 137 Ogün Çörekçi LM 17 5 - A-Jugend 7. / 137 Rikard Jepsen LIB 18 5 129.999 € Special John Players 4. / 137 Rikard Jepsen LIB 18 5 - A-Jugend 1. / 137 Félix Larrañaga MS 37 19 - ...wurde gefeuert! 34. / 136 Talhah al-Nu’man MS 32 17 29.750.556 € Herkules Kassel eV 29. / 136 Cristiano Wallace McDonald LMD 23 10 12.500.001 € Lok Wahren ';
    2. echo $data . '<br><br>';
    3. // Trenne die einzelnen Datensätze voneinander, Delimiter ist "Spieltag. / Saison"
    4. $data = preg_replace('/((\d)|(\d\d))\.\s\/\s\d\d\d\s/', '|', $data);
    5. $foo = preg_replace('/((\d)|(\d\d))\.\s\/\s\d\d\d\s/', '|', $foo);
    6. echo $data . '<br><br>';
    7. echo $foo . '<br><br>';



    Die Ausgaben in Zeile 9 und 10 sehen folgendermaßen aus:


    Data:


    Code
    1. 33. / 140 Remigiusz Szeja TW 36 18 - ...wurde gefeuert! 33. / 140 Artur Sacha TW 27 14 62.500.001 € FcKalikratia 33. / 140 Linas Balciunis MS 17 4 - A-Jugend 15. / 140 Masilela Chidakwa LMD 18 6 9.000.002 € Sunshine Lions 12. / 140 Holger Lobing RM 19 5 330.000 € FV Faurndau 11. / 140 Keke Hämäläinen LV 18 6 6.950.001 € Gossner Fighter 11. / 140 Remi Hindenes ZM 18 6 7.950.001 € F.C.Hollywood 31. / 139 Carsten Leegaard ZM 17 3 1.050.001 € Nymphoman F.C. 30. / 139 Remi Hindenes ZM 17 5 - A-Jugend 30. / 139 Masilela Chidakwa LMD 17 5 - A-Jugend 26. / 139 Keke Hämäläinen LV 17 5 - A-Jugend 15. / 139 Carsten Leegaard ZM 17 2 - A-Jugend 6. / 139 Holger Lobing RM 18 3 - A-Jugend 20. / 138 John Madsen TW 17 5 6.786.669 € 1. FC Rinkes 08 18. / 138 John Madsen TW 17 5 - A-Jugend 21. / 137 Axel Rink RS 17 5 2.860.002 € Hannover Empire 14. / 137 Axel Rink RS 17 5 - A-Jugend 13. / 137 Ogün Çörekçi LM 17 5 8.950.002 € Abstinenz 11. / 137 Ogün Çörekçi LM 17 5 - A-Jugend 7. / 137 Rikard Jepsen LIB 18 5 129.999 € Special John Players 4. / 137 Rikard Jepsen LIB 18 5 - A-Jugend 1. / 137 Félix Larrañaga MS 37 19 - ...wurde gefeuert! 34. / 136 Talhah al-Nu’man MS 32 17 29.750.556 € Herkules Kassel eV 29. / 136 Cristiano Wallace McDonald LMD 23 10 12.500.001 € Lok Wahren


    Foo:


    Code
    1. |Remigiusz Szeja TW 36 18 - ...wurde gefeuert! |Artur Sacha TW 27 14 62.500.001 € FcKalikratia |Linas Balciunis MS 17 4 - A-Jugend |Masilela Chidakwa LMD 18 6 9.000.002 € Sunshine Lions |Holger Lobing RM 19 5 330.000 € FV Faurndau |Keke Hämäläinen LV 18 6 6.950.001 € Gossner Fighter |Remi Hindenes ZM 18 6 7.950.001 € F.C.Hollywood |Carsten Leegaard ZM 17 3 1.050.001 € Nymphoman F.C. |Remi Hindenes ZM 17 5 - A-Jugend |Masilela Chidakwa LMD 17 5 - A-Jugend |Keke Hämäläinen LV 17 5 - A-Jugend |Carsten Leegaard ZM 17 2 - A-Jugend |Holger Lobing RM 18 3 - A-Jugend |John Madsen TW 17 5 6.786.669 € 1. FC Rinkes 08 |John Madsen TW 17 5 - A-Jugend |Axel Rink RS 17 5 2.860.002 € Hannover Empire |Axel Rink RS 17 5 - A-Jugend |Ogün Çörekçi LM 17 5 8.950.002 € Abstinenz |Ogün Çörekçi LM 17 5 - A-Jugend |Rikard Jepsen LIB 18 5 129.999 € Special John Players |Rikard Jepsen LIB 18 5 - A-Jugend |Félix Larrañaga MS 37 19 - ...wurde gefeuert! |Talhah al-Nu’man MS 32 17 29.750.556 € Herkules Kassel eV |Cristiano Wallace McDonald LMD 23 10 12.500.001 € Lok Wahren



    Wie ihr seht, hat es einmal funktioniert und einmal nicht.


    Ich hoffe, mir kann irgendwer helfen. Es ist echt zum kotzen. :D


    Danke schon mal!


    Gruß
    JR Cologne

  • Könnte am regex liegen, wenn es nicht mehr greift.
    Wenn zB die digits am Anfang nicht mehr 2, sonder > 2 sind. (IDs größer geworden?)


    breakdown:


    Empfehlung (unabhängig davon, on es der Fehler war)

  • Vielen Dank euch beiden!


    Den Code, wie $data generiert wird, würde ich euch eigentlich ganz gerne ersparen.


    Aber sollte Cotton's Lösungsansatz nicht helfen, bekommt ihr den natürlich.



    Edit: Mein Problem hat sich aus irgendeinem Grund von selbst aufgehoben. Zumindest ist es jetzt nicht mehr aufgetreten. Keine Ahnung, warum. :D