Regulärer Ausdruck - Problem

  • Da ich die shoutbox nicht mussbrauchen darf:


    ich habe einen string, der wiefolgt aussieht:


    PHP
    1. 101005002 2x0,5 OZ 9,6 4,9 38


    Dabei handelt es sich um 5 verschiedenen ausdrücke, d.h. das OZ gehört zu 2x0,5. Allerdings ist das nicht bei jedem string so und deshalb kann ich nicht einfach nach
    " " exploden. Ich bräuchte etwas wie "LerzeichenNummer" als trenner.


    und zwar so, das erst ein whitespace(leerzeichen) und dann eine nummer(int) kommen müssen


    immer da soll getrennt werden

    PHP
    1. $explode = explode ('/^\s\d/', $file[$i]);




    alxy

    Einmal editiert, zuletzt von zwoemti () aus folgendem Grund: Mal bissl anschaulicher

  • Wenn du die Code Tags benutzt sieht das besser aus und man hat gleich noch eine vernünftige ansicht und sieht was man falsch macht...und man bekommt einen Link zu den ausdrücken - wo man auch sehen kann


    oder interpretiere ich das falsch?

  • Mh entweder verstehe ich das falsch oder du interpretierst nicht richtig :D


    Also erstmal generelle frage: reguläre ausdrücke als delimiter sind bei explode nicht möglich? Ich gehe stark von nein aus, allerdings bräuchte ich genau soetwas. eine explode funktion die reguläre asdrücke zulässt.


    alxy

  • neues Problem, wo ich nicht weiß, wo es herkommt. Gestern hat es nämlich noch geklappt :(


    Also Code:


    Mein file-array habe ich mal hier ausgeben lassen: http://demo.familie-guth.com/test/
    Interessant sind die Zeilen nach "Aufbau":


    Eine neue Eigenschaft wird jeweils mit einem Whitespace eingeletet, logisch das ich das abfiltern will. gestern gings auch noch, ich habe keine Ahnung, warum jetzt nichtmehr. Jetzt macht er einfach für jede Zeile einen neuen Arrayeintrag.


    alxy

  • Ja, aber ich habe da eigentlich nichts geändert.
    Ich versuche mal kurz das Skript zu erklären.
    Also die for schleife (ist ein wenif komplexer) geht einfach nur die schlüssel durch im $file-Array und zwar nach "Anwendung" bis ein neuer bereich anfängt (Der neue bereich ist das zweite Argument für for)
    Dann gibts bei eingelesenen pdf dateien das problem, dass manchmal ( nicht immer), ein "n" am anfang steht. Das replace ich.
    Dann wird geprüft, ob die zeile mit einem whitespace beginnt (das tun ja viele) und wenn ja, dann wird ein neuer wert ins array geschrieben.
    Wenn nicht (ist auch bei ein paar zeilen der fall) soll eigentlich der letzte wert im array ergänzt werden; count gibt die werte zurück, weil php aber mit den keys bei 0 anfängt das "-1".


    Also von der Teorie her eigentlich perfekt und f8unzte auch gestern noch, aber jetzt leider nichtmehr. HAbe an dieser stelle auch nichts geändert. Außerde die datei ist eine andere geworden.


    alxy