1. #1
    Avatar von soulreafer
    Registriert seit
    07.10.2012
    Beiträge
    175
    Thanked 64 Times in 35 Posts

    Standard String an Aufzählung splitten mittels preg_split

    nabends,

    ich möchte einen String mit folgendem Aufbau:

    0. soulreafer, 76561197978393712 1. Derpeter, 76561197989657397 3. Hans, 33561117989657397 ...

    den Stellen aufbrechen wo die fortlaufende Nummer mit dem Punkt ist um anschließend aus den Teilen weiter die namen und nummern getrennt durchs komma aufzuteilen.

    ich möchte zum schluss folgendes rausbekommen


    Anzahl aller Usern (array count)

    ID | Name | Nummer

    0 | soulreafer | 76561197978393712
    1 ....
    2 ....

    Leider schlage ich mit meinem Versuch fehl

    Code:
    $erster_durchlauf = preg_split("/[0-*]+.+/", "0. soulreafer, 76561197978393712 1. Derpeter, 76561197989657397 3. Hans, 33561117989657397 ...");
    Natürlich könnte ich auch einfach ohne Regex nur am Punkt splitten und die fortlaufende nummer nachträglich wieder dranbasteln aber ich würd gerne Regex verstehen lernen :-)
    Geändert von soulreafer (21.07.2015 um 22:05 Uhr)
    Kryptokombat! Crypto Sportsbet Gambling
    http://www.kryptokombat.tv

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: String an Aufzählung splitten mittels preg_split

    Die Zeichengruppe [0-*] ergibt keinen Sinn. Du suchst eine mindestens einstellige Zahl, also muss das [0-9] oder alternativ \d lauten. Und der Punkt ist in Regulären Ausdrücken ein Platzhalter für ein beliebiges Zeichen. Um einen einzelnen Punkt zu finden, muss diese spezielle Bedeutung durch Escapen ausgehebelt werden:

    PHP-Code:
    <?php

    $input 
    '0. soulreafer, 76561197978393712 1. Derpeter, 76561197989657397 3. Hans, 33561117989657397';
    $pattern "/[0-9]+\.+/";

    ?>
    <pre>
        <?= var_dumppreg_split$pattern$input, -1PREG_SPLIT_NO_EMPTY ) ) ?>
    </pre>
    Ergibt

    Code:
    array(3) {
      [0]=>
      string(31) " soulreafer, 76561197978393712 "
      [1]=>
      string(29) " Derpeter, 76561197989657397 "
      [2]=>
      string(24) " Hans, 33561117989657397"
    }
    Funktioniert natürlich nur so lange fehlerfrei wie keine Zahl gefolgt von einem Punkt in den Daten selbst auftritt. Ich würde das daher in der Form nur einsetzen wenn es nicht anders geht (z.B. Ausgabe einer Fremd-API). Für eigene Schnittstellen sollte eine vernünftige Lösung her - Abhängig vom Einsatzzweck z.B. JSON. Dort wird alles was Probleme machen kann automatisch escaped, dementsprechend ist die Integrität der Daten gesichert.


  3. The Following 2 Users Say Thank You to DMW007 For This Useful Post:

    Bubble (22.07.2015), soulreafer (21.07.2015)

  4. #3
    Avatar von soulreafer
    Registriert seit
    07.10.2012
    Beiträge
    175
    Thanked 64 Times in 35 Posts

    Standard AW: String an Aufzählung splitten mittels preg_split

    Ja sonst nutz ich auch nur json, aber ich bin in dem fall gebunden da es eine rückgabe von einem rcon befehl ist und da habe ich keinen einfluss drauf.
    tdem danke so geht das perfekt
    Kryptokombat! Crypto Sportsbet Gambling
    http://www.kryptokombat.tv

Ähnliche Themen

  1. Mittels Smartphone Audio Übertragen
    Von GERDexter im Forum Mobilgeräte
    Antworten: 1
    Letzter Beitrag: 08.07.2015, 00:27
  2. Antworten: 1
    Letzter Beitrag: 16.12.2013, 09:14
  3. Telefonate mittels R zusammenführen - Kosten?
    Von bluedraqon im Forum Audio & Video
    Antworten: 1
    Letzter Beitrag: 18.02.2013, 19:36
  4. VB.Net Mittels VB fremde Applikationen steuern?
    Von bluedraqon im Forum .Net
    Antworten: 2
    Letzter Beitrag: 15.11.2012, 21:13
  5. [Hilfe] XML Laden und splitten
    Von feeback im Forum .Net
    Antworten: 1
    Letzter Beitrag: 15.12.2011, 18:05
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.