Mailinglisten-Archive |
Sebastian Mendel wrote: >entweder in einem String: >// INT ,INT ,STRING ,INT ,STRING >'°^[0-9]+,*[0-9]+,\'([^\']*|(\\\')*)*\',[0-9]+,\'([^\']*|(\\\')*)*\'$°' Da fällt mir auf das es keine Einschränkung betreffend der Anzahl der Felder (Abschnitte) und auch keine feste Indexierung derer besteht. Also können es mehrere Felder sein und auch in anderen Kombinationen: INT, STRING,INT STRING,STRING,STRING,INT Was das ganze sicherliche von der Idee das über CSV zu vereinfachen abweicht. Ein Fehler meinerseits. >oder du splittest es einfach an den Kommastellen und übprüfst dann jedes >einzelne: >für jede zeile >{ > split bei komma > überpfüfen jedes feldes (is_string, is_int, ...) >} Das ist der richtige Ansatz und auch die Richtung die ich weiter verfolge. Aber ein einfaches aufsplitten mit split() führt nicht zum Ergebnis, da: INT, INT, STRING, INT, STRING 1 , 2 , 'test' , 3 ,'$richtig->essen(\'fettarmes\', \'essen\', true)' => true einen String enthält der selbst Kommata beinhaltet! Also muss ich über preg_split() einen Term finden der das nach folgenden Regeln splittet: (NACH ,) ODER (, UND vorheriges (' OHNE vorheriges\)) sebst dann ist nicht sicher ob nicht: 1 , 2 , 'test' , 3 ,'$richtig->essen(\'fettarmes\', \'essen', true)' => true slash bevor singel Quote fehlt ---^ eine exeption schmeisst was nicht sein soll ich will ja genau diesen Fall filtern und 'reparieren'! Also sollte die Regel heissen: (NACH ' OHNE vorherigen \) UND , was aber nicht den ersten Abschnitt matcht :( Anderer Lösungsweg: ein: $regs = "/'([^'].*)'/sim"; preg_match_all($regs, $string, $match); gibt mir den gesuchten String als Kommataseparierte Liste zurück, ein: $regs = "/'([^'].*?)'/sim"; splittet sogar diese liste nach Kommata, erfüllt aber nicht die Bedingung das Php-Code erhalten bleiben soll! Ich drehe mich also im Kreis... >p.s. irgendwer hatte hier mal irgendwo in der Liste ein Script gepostet >womit man relativ einfach reguläre Ausdrücke ausprobieren konnte ... >weiß leider nicht mehr wo es das gab oder wer das vorgeschlagen hatte ... Der 'Regular Expression Editor' von PHPEdit Network ist auch nicht schlecht. P.S.: jetzt freue ich mich richtig über die rege Beteiligung ;) Gruss Roland Braband
php::bar PHP Wiki - Listenarchive