bertl47: erste ziffer in string suchen

Hallo, ich bitte um Hilfe für folgende Aufgabe ( sehe im Moment den Wald vor lauter Bäumen nicht, brauche einen kleinen Tritt ... )
Wie suche in nach der ersten Ziffer in einem String?
Habe in meiner mysql-DB das Feld Strasse:
Inhalt z.B.: Hauptstrasse 31a
Ich möchte nun 2 Felder machen (Strasse und extra Hausnummer )
ich möchte irgendwie suchen an welcher Stelle im String irgendeine Ziffer vorkommt um so das Feld zu splitten.
Muss ich da mit einer Schleife jede Stelle im String nach 0-9 durchsuchen oder gibt es da evtl. schon etwas einfachers, fertiges ?

Vielen Dank
Herbert

  1. Hi,

    Muss ich da mit einer Schleife jede Stelle im String nach 0-9 durchsuchen oder gibt es da evtl. schon etwas einfachers, fertiges ?

    zum Beispiel mit preg_match und regulären Ausdrücken.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. @@Joachim:

      nuqneH

      zum Beispiel mit preg_match und regulären Ausdrücken.

      1. Nein, besser nicht. Zitat 1418. Mit einer Schleife durch den String zu gehen dürfte performanter sein.

      2. Das löst das Problem nicht.

      Qapla'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      1. Hi

        1. Nein, besser nicht. Zitat 1418.

        nun ja. Diesem Zitat schliesse ich mich nicht an.

        Mit einer Schleife durch den String zu gehen dürfte performanter sein.

        Aber nur dann, wenn man tatsächlich die erste Zahl im String sucht, was - wie Du selber nahegelegt hast - hier nicht angebracht ist

        1. Das löst das Problem nicht.

        Damit lassen sich jedenfalls mehr Eventualitäten berücksichtigt als mit eine Schleifendurchlauf.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
  2. @@bertl47:

    nuqneH

    Wie suche in nach der ersten Ziffer in einem String?

    Wie sollte dir das bei deinem Problem weiterhelfen?

    Habe in meiner mysql-DB das Feld Strasse:
    Inhalt z.B.: Hauptstrasse 31a
    Ich möchte nun 2 Felder machen (Strasse und extra Hausnummer )

    Warum willst du das tun?

    ich möchte irgendwie suchen an welcher Stelle im String irgendeine Ziffer vorkommt um so das Feld zu splitten.

    "Straße des 17. Juni 135" aufteilen in "Straße des" und "17. Juni 135"?

    Und dass bei vielen Adressen die Hausnummer vor der Straße steht, wäre auch zu bedenken.

    gibt es da evtl. schon etwas einfachers, fertiges ?

    Wohl nicht. Etwas Einfaches schon gar nicht. „Wenn die Felder zusammengesetzt wurden, ist es praktisch unmöglich, sie automatisch wieder zu trennen.“ [MudGuard]

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. @@bertl47:

      nuqneH

      Wie suche in nach der ersten Ziffer in einem String?

      Wie sollte dir das bei deinem Problem weiterhelfen?

      Habe in meiner mysql-DB das Feld Strasse:
      Inhalt z.B.: Hauptstrasse 31a
      Ich möchte nun 2 Felder machen (Strasse und extra Hausnummer )

      Warum willst du das tun?

      ich muss die Daten einmalig an ein anderes Adressprogramm exportieren in dem diese 2 Felder vorgegeben sind

      ich möchte irgendwie suchen an welcher Stelle im String irgendeine Ziffer vorkommt um so das Feld zu splitten.

      "Straße des 17. Juni 135" aufteilen in "Straße des" und "17. Juni 135"?

      Und dass bei vielen Adressen die Hausnummer vor der Straße steht, wäre auch zu bedenken.

      ... ja, das habe ich noch gar nicht bedacht
      Ziffern am Anfang wäre ja noch abzufangen, aber das Beispiel Strasse des 17 Juni hat schon was für sich

      Fazit: Vielen Dank für die Hinweise, werde es wohl nicht lösen können

      gibt es da evtl. schon etwas einfachers, fertiges ?

      Wohl nicht. Etwas Einfaches schon gar nicht. „Wenn die Felder zusammengesetzt wurden, ist es praktisch unmöglich, sie automatisch wieder zu trennen.“ [MudGuard]

      Qapla'

  3. Hello,

    Wie suche in nach der ersten Ziffer in einem String?
    Inhalt z.B.: Hauptstrasse 31a

    Unter Berücksichtigung der Bedenkenträger dieses Threads sollte es möglich sein, die pragmatischste Lösung zu finden :-)

    • Felder, die vor der ersten Ziffer keine Buchstaben haben, sind auffällig
    • Felder, die nach der späteren Ziffernfolge noch mehr als ein anderes Zeichen
        (mit Ausnahme von Leerzeichen) haben, sind auffällig

    Damit dürften nach dem Bauchgefühl und der bisherigen Erfahrung mehr als 95% der Datensätze keiner manuellen Nachpflege bedürfen.

    Diese Überlegungen sollte man dann vielleicht in die zu erstellende Funktionengruppe einfließen lassen ;-)

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo,

      Unter Berücksichtigung der Bedenkenträger dieses Threads sollte es möglich sein, die pragmatischste Lösung zu finden :-)

      tatsächlich? ;-)

      • Felder, die vor der ersten Ziffer keine Buchstaben haben, sind auffällig

      So wie beispielsweise "76, Riverside Drive"? - Bis jetzt war noch keine Rede davon, dass es ausschließlich um deutsche Adressen geht. Dass in manchen Ländern die Hausnummer vor der Straße notiert wird, hat Gunnar ja schon erwähnt, und der OP hat diesen Hinweis bereitwillig aufgenommen.

      • Felder, die nach der späteren Ziffernfolge noch mehr als ein anderes Zeichen
          (mit Ausnahme von Leerzeichen) haben, sind auffällig

      So wie beispielsweise "Brekkenweg 134, Bungalow No. 95"?

      Damit dürften nach dem Bauchgefühl und der bisherigen Erfahrung mehr als 95% der Datensätze keiner manuellen Nachpflege bedürfen.

      Ich fürchte, dein Bauch trügt. Die Schreibweise von Adressen ist einmal von Land zu Land grundsätzlich unterschiedlich; aber auch innerhalb eines Landes treten teils so viele Variationen auf, dass es problematisch wird. Was ist zum Beispiel mit der Innenstadt Mannheims mit ihren Koordinaten anstatt herkömmlicher Straßennamen?

      Diese Überlegungen sollte man dann vielleicht in die zu erstellende Funktionengruppe einfließen lassen ;-)

      Ich würde eher empfehlen, Zusammengehörendes auch zusammen zu lassen.

      Schönes Wochenende,
       Martin

      --
      Eine Neandertaler-Sippe sitzt in ihrer kalten Höhle. Seufzt der Stammesälteste: "Hoffentlich erfindet bald jemand das Feuer!"
      1. @@Der Martin:

        nuqneH

        So wie beispielsweise "Brekkenweg 134, Bungalow No. 95"?

        Naja, solche Zusätze sind nicht sooo häufig. Sowas wie "Brekkenweg 134a" allerdings.

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        1. Moin!

          So wie beispielsweise "Brekkenweg 134, Bungalow No. 95"?

          Naja, solche Zusätze sind nicht sooo häufig. Sowas wie "Brekkenweg 134a" allerdings.

          Aber sie kommen vor. Genauso wie "Irgendeinestraße 23, Hinterhaus 2". Da geht der Postbote dann durch das Hausportal in den Hinterhof zum dort nachträglich platzierten Haus und wirft die Post dort ein.

          - Sven Rautenberg

          1. @@Sven Rautenberg:

            nuqneH

            Aber sie kommen vor.

            Ja, natürlich. Aber nicht so häufig wie Hausnummern à la 134a.

            Der Gedanke war doch, die Daten weitestgehend automatisiert umzuwandeln und die „auffälligen“ Daten für die nachträgliche Bearbeitung von Hand zu kennzeichnen.

            Der Algorithmus sollte möglichst 134a nicht „auffällig“ finden, sondern als Hausnummer erkennen.

            Qapla'

            --
            Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
            1. Hello,

              Der Gedanke war doch, die Daten weitestgehend automatisiert umzuwandeln und die „auffälligen“ Daten für die nachträgliche Bearbeitung von Hand zu kennzeichnen.

              Der Algorithmus sollte möglichst 134a nicht „auffällig“ finden, sondern als Hausnummer erkennen.

              So war es gedacht.

              Aber wie hier schon gesagt wurde, muss man bei solchen Tools natürlich etwas über die Semantik der vorliegenden Daten, also auch den Sprachraum mit seinen Eigentümlichkeiten wissen. Ich war erstmal nur von deutschen Verhältnissen ausgegangen und hatte noch die Programme im Hinterhirn, die ich vor gefühlten 500 Jahren für die Postleitzahlumstellung geschrieben habe. Die haben alle bestens funktioniet und nur ca. 1% händischen Nacharbeitungsbedarf gehabt, den sie auch sauber isoliert haben vom umgestellten Bestand.

              Da gab es allerdings zusätzlich noch Kontrollisten zur Gegenprüfung komplizierter Fälle.

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
  4. Grüße,
    vielleicht, mit sehr viel vorsicht - wäre regural expression eine hilfe - etwas wie
    preg_replace_callback("\D+?)(\d+)","speichern_getrennt",$zusammen)
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
    1. notiz für mich: wenn man ein fenster seit paar stunden offen hat, erst refreshen dann antworten >_<
      MFG
      bleicher

      --
      __________________________-

      FirefoxMyth