Straße zerlegen - aber wie?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Straße zerlegen - aber wie?

    Hallo, bin der neue!

    Habe ein Problem, bzw eine Frage!

    Wie kann ich denn eine Variable in welcher z.b. der String "Innere Bach Straße 12" in Straßenname und Hausnummer zerteilen? Die Anzahl der Leerzeichen im Straßennamen ist variabel und die Hausnummer ebenfalls!

    mfg
    infernalshade

  • #2
    Regulärer Ausdruck!
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Regulärer Ausdruck!
      Stimmt... aber auch dann, kann ich gerentieren, dass nicht 100% der Datensätze stimmen werden. Es gibt in den Strassenbezeichnungen auch ab und zu Leerzeichen und Ziffern und die Hausnummern haben auch Zusätze und diese können auch mehr als einstellig sein.

      Also die Handhabung der Geodaten ist immer kompliziert.
      Download ET-Chat v3.x.x

      Kommentar


      • #4
        Original geschrieben von E.T.
        Stimmt... aber auch dann, kann ich gerentieren, dass nicht 100% der Datensätze stimmen werden. Es gibt in den Strassenbezeichnungen auch ab und zu Leerzeichen und Ziffern und die Hausnummern haben auch Zusätze und diese können auch mehr als einstellig sein.
        Wenn du alle Kombinationen von Straßenbezeichungen inkl. aller möglichen zusätze kennst und das ganze auf ein Land beschränkt ist: Kein Thema. Musste ich schon realisieren.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Original geschrieben von E.T.
          Stimmt... aber auch dann, kann ich gerentieren, dass nicht 100% der Datensätze stimmen werden. Es gibt in den Strassenbezeichnungen auch ab und zu Leerzeichen und Ziffern und die Hausnummern haben auch Zusätze und diese können auch mehr als einstellig sein.
          #^(.+)\s([0-9]+)(?: ?)([a-z]*)$#
          könnte das z.B. recht gut erfüllen

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            zerlegen und prüfen "ist string" oder "ist nummeric"
            Signatur-Text ...

            Kommentar


            • #7
              Ne, nach dem Zusatz können noch sachen wie "Hinterhaus" oder ähnliches auftauchen. Ist zwar extrem selten, aber es kommt halt vor. Es gibt auch Straßen in Deutschland komplett ohne Hausnummer.

              Ich empfehle auch, diesen Datensatz zur Sicherheit nocheinmal un-auseinandergepflückt vorzuhalten. Für alle Fälle.

              P.S.: Außerdem ünterstützt dein Ausdruck keine Mehrfachhausnummern. Sowas wie "9-11".
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Oha, so viele Antworten auf einmal ^^ Vielen Dank!

                Also das Szenario ist folgendes:

                Wir benutzen schon seit ewig ein Mitarbeiterverwaltungstool...da wird in einer Tabelle bei der Spalte Straße die Straße+Hausnummer gespeichert...

                Jetzt schreibe ich in PHP ein arbeitsschutzportal wo man auch die arbeitsunfälle erfassen kann...das dokument muss aber in einer bestimmten form sein...
                und da gibt es eben das feld "straße" und das muss in form "straße,hausnummer" sein...also mit einem komma dazwischen. bei mir sind das 2 textfelder!
                für die erfassung des arbeitsunfalls sollen möglichst viele daten gleich in das formular gezogen werden. deswegen lese ich die mitarbeiterdatenbank aus wo aber die straße+hausnummer zusammenstehen.
                und die müsste ich teilen um BEIDE textfelder füllen zu können!

                ps: die mitarbeiter haben soweit ich weis nur deutsche adressen, maximal österreichische!

                mfg
                infernalshade

                Kommentar


                • #9
                  Ich würd einfach auf gut-Glück vor der Zahl ein Komma einfügen, und wenn das nicht passt, soll der Benutzer das Formular eben korrigieren...

                  Kannst ja drüber schreiben "Einige Daten sind schon eingetragen. Bitte überprüfen sie deren Korrektheit!" oder sowas~

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    und wie füg ich vor der zahl ein komma ein? :-)
                    gibt es eine funktion "suche nahc zahl und machn komma davor" ??

                    mfg
                    infernalshade

                    Kommentar


                    • #11
                      Ne, aber es gibt eine Funktion "suche nach muster und ersetze es durch etwas bestimmtes": ereg_replace()
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        Original geschrieben von unset
                        Ne, aber es gibt eine Funktion "suche nach muster und ersetze es durch etwas bestimmtes": ereg_replace()
                        Die ereg_*-Funktionen sind veraltet.
                        Die preg_*-Funktionen sind zu bevorzugen.

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Aus den Funktionen werde ich irgendwie nicht schlau, mein Ansatz wäre

                          PHP-Code:
                          $strasseneu=preg_replace([1-9],",".[1-9],$strasse); 
                          ich bräuchte also bei dem "ersetzen"-teil ein "schreib ein komma und setz den die gefundene zahl hinten dran"

                          ps: geht das eigentlich mit dem "[1-9]" ??

                          mfg
                          infernalshade

                          Kommentar


                          • #14
                            Schau dir regukäre Ausdrücke wenigstens mal grundlegend an. Das da hat noch nicht viel damit zu tun. Das Kapitel Backreferences hast du anscheinend total übersprungen, die sind idr. unerlässlich für Ersetzungen...
                            ICH BIN ICH!!!

                            Kommentar


                            • #15
                              PHP-Code:
                              <?php
                              $subject 
                              "BlaStraße 19";
                              echo 
                              preg_replace("#^(.+)\\s([0-9]+)(?: ?)([a-z]*)$#""$1, $2$3$4"$subject);

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X