Office: (Office 2013) RegEx fehlende Hausnummer in Straße

Helfe beim Thema RegEx fehlende Hausnummer in Straße in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; \@readonly Danke, das funzt. Aber könntest Du erklären, wie das Pattern das bewerkstelligt? @Eberhard und Wolfgang Auch Euch Danke. Ich hab noch ein... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Storch, 14. Mai 2015.

  1. RegEx fehlende Hausnummer in Straße


    \@readonly

    Danke, das funzt. Aber könntest Du erklären, wie das Pattern das bewerkstelligt?

    @Eberhard und Wolfgang
    Auch Euch Danke. Ich hab noch ein paar Pattern zu schreiben und werde Eure Beiträge berücksichtigen, so sie für meine Zwecke passen.

    Kann auch sein, das ich morgen noch ne Frage nachschiebe, weil ich ein anderes Pattern auch noch nicht hin bekommen habe. Ich will aber erst noch einiges selbst versuchen.

    Schönen Restsonntag. *Smilie
     
    Storch, 17. Mai 2015
    #16
  2. Code:
    Zwischen Anfang ("^") und Ende ("$") des Strings werden Nichtziffern (keine bis mehrere) gesucht. Sobald eine Ziffer vorhanden ist, wird das Suchmuster nicht erfüllt.
    Keine Nichtziffer: Ein leeres Feld würde also auch True ergeben
     
    ebs17, 17. Mai 2015
    #17
  3. Das Umkehren betrifft nicht das Such-Ergebnis, sondern das Suchmuster. Also [^0-9] prüft im Text, ob mindestens ein Zeichen vorhanden ist, welches keine Ziffer ist. Wenn das zutrifft, können die restlichen Zeichen im Text beliebig sein und haben keinen Einfluss mehr auf das Ergebnis.

    Um die Negation (NOT) direkt im RegExp-Pattern zu verwirklichen, muss daher das Suchmuster auf die volle Länge des Textes ausgedehnt werden:
    Code:
    Beispiele:
    Code:
    *Smilie
     
    readonly, 17. Mai 2015
    #18
  4. RegEx fehlende Hausnummer in Straße

    Was ja dann durchaus erwünscht ist, denn ein leeres Feld (Straßenangabe) ist genauso "obscure" wie eine Straße ohne Hausnummer.

    Wie muss man sich Textanfang -und ende vorstellen? Ist der gesamte String, der in RegEx untersucht werden soll als EIN Text anzusehen?

    Oder würde folgende Straße: Pieskower Straße 2a drei Texte darstellen? Glauben tue ich es nicht aber solche Fragen stellen sich mir zuweilen. *grins Meine Annahme ist, dass die drei Zeichengruppen als Wörter anzusehen sind.

    Aktuell will ich die GPS-Coordinaten der Kunden untersuchen.
    Ich speichere diese als Koordinatenpaar in einer Spalte nach folgendem Schema: -55.12345,11.54321
    Minus als Vorzeichen kann, muss aber nicht vorkommen. Dezimaltrenner ist der Punkt, das Paar wird durch Komma getrennt. Die Stellen vor dem Komma können 1 bis 3stellig sein, die Stellen nach dem Komma mindestens 3stellig, maximal 5stellig.

    Dank Verwendung von Textanfang -und ende-Zeichen ist es mir gelungen ein Pattern zuschreiben, das alle Koordinaten matcht, die Richtig sind (die Schreibweise ist für mich zum testen übersichtlicher):

    Code:
    Die korrekten Koordinaten werden als Wahr gemeldet, ich möchte aber auch hier, die falschen als Wahr melden lassen.
    Allerdings gibt es nur eine Variante, wie die Koordinaten richtig sind, sicher aber unzählige, wie sie falsch sein können.

    Da die Koordinatenprüfung bei mir als Einzelprüfung vorgesehen ist, also nicht noch andere Suchmuster gleichzeitig geprüft werden müssen, scheint es mir einfacher, die Funktionsrückgabe zu negieren.

    Dennoch wären Anregungen, wie das obige Pattern in seinem Sinne negiert werden kann, für mich sehr lehrreich und willkommen.

    Gruß Uwe

    Edith:

    Mir ist eingefallen, dass eine reine Prüfung der Stellenanzahl von GPS-Koordinaten nicht aussagekräftig ist weil, Latitude kann nur maximal 90 sein, Longitude max. 180. Bei Überschreitung dieser Werte zB 99 statt neunzig würde mein bisheriges Pattern die Koordinate trotzdem als gültig ausweisen. Daher hab ich das Pattern modifiziert:
    Code:
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Storch, 17. Mai 2015
    #19
  5. Anfang und Ende sind Anfang und Ende vom ganzen String. Gibt es innerhalb des Strings Zeilentrennungen, also mehrere Zeilen, kann man dann auch teilweise Zeilenanfang und -ende auswerten. Da kommt dann die Multiline-Eigenschaft zur Anwendung. Die habe ich aber noch nicht 100-prozentig verstanden.
    Code:
    Ein einzelnes Zeichen gibt man einfach an, ohne Anzahlenbereiche.

    Beim Punkt musst Du aufpassen. Dieser hat wie einige andere Zeichen erst einmal eine besondere Bedeutung (beliebiges Zeichen). Falls man also den Punkt selber meint, muss man ihn maskieren (ein Backslash voranstellen).

    Das ist doch allenfalls ein Zwischenschritt (Normalisierung)?

    Ich wäre eher bestrebt, aus der Vorlage gültige atomare Werte herauszulösen und in die entsprechenden Felder der entsprechenden Tabelle laut Datenmodell zu schreiben.
    Was dann offen bleibt, war halt ungültig oder nicht vorhanden. Das ist dann die "Negierung", die sich im praktischen Ablauf einfach ergibt.
    Nein. Primär betrachtet RegEx einfach Zeichen (gesamte ASCII-Tabelle).
    Zahlen werden erst dann zu Zahlen und Worte werden erst dann zu Worten, wenn man sie gezielt so betrachtet.

    Die Anwendung höherer Mathematik ist bei mir eine Weile her. Wenn ich das aber richtig interpretiere, wären dann nur fehlende Werte (als Gesamtstring) als falsch zu werten. Eine Prüfung auf Null macht man aber besser mit den gewohnten Methoden.
     
    ebs17, 18. Mai 2015
    #20
  6. Hallo Uwe!

    Kann ich nicht wirklich nachvollziehen.

    Wenn Regex den Pattern nicht findet, so ist das Funktionsresultat eben False.
    Muß unbedingt ein Resultat True bei fehlerhaften Daten geliefert werden?
    False genügt nicht?

    Trotzdem: '[^abc]' matches in "plain" the 'p', 'l', 'i' and 'n' .

    Wolfgang
     
    wb_3001, 18. Mai 2015
    #21
  7. Danke für den Tipp *Smilie
    Ja, Punkt steht für ein beliebiges Zeichen. Nach Test musste ich feststellen, dass ich da schrieben konnte, was ich wollte, es wurde akzeptiert. Mit dem Backslash akzeptiert er nur den Punkt.

    Das Du das nicht gut heissen würdest ist mir klar. Korrekter wäre es, Lat und Long getrennt zu speichern. Mir schien es nur anfänglich einfacher aber ich denke, ich werde das noch ändern.

    Hier verstehe ich gar nicht, was Du mir sagen willst. Wie sollen sich Atomisierung, Normalisierung und höhere Mathematik auf die Negierung auswirken?

    Zum Verständnis:

    1. Das Pattern, das ich jetzt habe (perfekt oder nicht) matcht mir Koordinatenangaben, die korrekt sind, denn das Pattern beschreibt, wie eine Koordinate beschaffen sein muss.
    2. Die Regex-Funktion ist in Abfrage eingebettet (Invalid: Funktion([GPS])). Mit Code:
    wird in der Funktion für jeden DS WAHR zurück gegeben, wenn die Koordinate den Vorschriften entspricht. Eine korrekte Koordinate kann man aber wohl nicht als 'Obscure' bezeichnen.
    3. Tatsächlich sollen alle DS mit WAHR gekennzeichnet werden, deren GPS-Koordinaten nicht den Vorschriften entsprechen und somit tatsächlich 'Obscure' sind. Dieses erreiche ich durch: Code:
    , was letztlich meine Negierung ist
    4. Nullwerte etc fange ich schon vor der Regex-Prüfung ab.

    Edith:
    @Wolfgang
    Ich habe diverse Prüfungen in meiner Anwendung und wollte eine, von der Logik her, einheitliche Rückgabe für alle Prüfungen. Die Prüfungen sind so aufgebaut, dass sie nach Fehler oder Unklarheiten suchen und mit Wahr melden, das solche vorhanden sind.

    Prüfe ich einen String auf unzulässige Zeichen und habe das Pattern entsprechend formuliert, matcht mir RegEx die Strings mit unzulässigen Zeichen und gibt Wahr zurück, Das heisst dann Ja, es wurden unzulässige Zeichen gefunden.

    Im Falle der GPS-Koordinaten bekomme ich durch das Pattern die Koordinaten als Wahr gemeldet, die korrekt sind. Im Sinne der Vereinheitlichung möchte ich aber die mit Wahr gemeldet bekommen, die Falsch sind.

    Da ich annehme, dass ein Pattern, das falsche Koordinaten erkennt, aufgrund der variablen Fehlermöglichkeiten wesentlich schwerer zu schreiben und umfangreicher sein wird, erspare ich mir das und kehre lediglich die Rückgabe um und habe dann eine, mit anderen Prüfungen gleichlautende Aussage.

    Letzten Endes werden alle Prüfungsergebnisse über einen Troubleshooter zugänglich gemacht. Da sollten die Aussagen dann auch eindeutig sein. Wenn da also steht, Prüfung 1 hat 3 Fehler gefunden, Prüfung 2 hat 4 Fehler, dann wäre die Aussage Prüfung 3 hat 6 Richtige gefunden wenig sinnvoll.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Storch, 18. Mai 2015
    #22
  8. RegEx fehlende Hausnummer in Straße

    So sieht nun meine Funktion inkl. Pattern für die GPS-Koordinaten aus. Die Aufteilung der Koordinaten auf zwei Spalten wird noch erfolgen.

    Nach ausgiebigen Test erfüllt das Ganze alle meine Ansprüche.
    Code:
    An der Adressprüfung feile ich noch. Ich hab mich aber entschieden, die Prüfungen auf Ungültigkeiten und Unklarheiten in einer Funktion zusammen zu fassen und über einen Byte-Datentyp mehrere Zustände zurück zu geben. Das Ganze poste ich morgen.

    Eine Frage treibt noch um:
    bei den Prüfungen arbeite ich derzeit nur mit der Straßen-Spalte. Es müssten aber auch PLZ und Ort geprüft werden.

    Würdet ihr dieses einzeln machen, also jede Spalte für sich prüfen oder zur Prüfung die 3 Spalten zu einem Adressstring verketten und diesen dann per Regex prüfen?
     
    Storch, 18. Mai 2015
    #23
  9. Hallo Uwe!

    Irgenwie komme ich mit Deiner Argumentation nicht klar:
    Warum InvalidGpsCoords und nicht ValidGpsCoords.
    Die Ergebnisse sind, richtig abgefragt doch dieselben.
    Ich suche lieber nach gültigen als nach ungültigen Informationen:
    "Ist die Info falsch" liegt mir nicht.
    Die Funktion umbenannt in ValidGpsCoords und die Negation
    herausgenommen ergibt prinzipiell Dasselbe.
    Aber so ist das mit liebgewonnenen Philosophien.

    Ich würde die Felder einzeln prüfen, wie Du es auch bei den Koordinaten zu tun beabsichtigst .
    Die Fehlersuche vereinfacht sich.

    Wolfgang
     
    wb_3001, 18. Mai 2015
    #24
  10. Primär würde ich mich damit befassen, wie denn die Daten überhaupt geliefert werden. Das Wissen darum sowie die Kenntnis der Zielsituation (in meiner Vorstellung das zu füllende Datenmodell) machen Lösungswege ja erst plausibel.
    RegEx ist ja mächtig, aber gutes VBA und SQL können einfacher und schneller sein. Sprich: Man könnte Kombinationen finden ...

    Die Frage ist ernst gemeint? (Ein Lehrling bei mir hätte schon eine Kopfnuss sitzen.)

    Wenn das jemand per Hand überarbeiten soll, hat das schon eine gewisse Logik.
     
    ebs17, 18. Mai 2015
    #25
  11. Hallo Wolfgang,

    Es mag letztlich eine philosophische Frage sein. Aber ich kam eher durch Überlegungen dazu, das so zu machen. Ich will Fehler aufspüren und diese anzeigen. Die Frage 'Ist ein Wert fehlerhaft?' Beantwortet sich mit ja oder nein. Bei Nein muss nix passieren, bei Ja muss das Programm eingreifen.
    Natürlich ist Deine Denkweise auch richtig , aber dann müsste ich bei jeder Auswertung immer darauf achten, was die jeweilige Abfrage mit Wahr oder Falsch meint

    Uwe
     
    Storch, 18. Mai 2015
    #26
  12. Nun, eine Routine braucht eine qualifiziertere Aussage als eine Angabe "ist falsch", weil sie bestenfalls auf einen konkreten vorgesehenen Fehler mit einer Korrektur reagieren kann.

    Ein Bimbo (händisch nacharbeitender User) hätte wünschenswerterweise die Fähigkeit, eine solche Korrektur selbständig durchzuführen.
     
    ebs17, 18. Mai 2015
    #27
  13. RegEx fehlende Hausnummer in Straße

    Drittanwendung exportiert nach excel, ich importiere von Excel. Und gerade in der Spalte 'straße' stehen alle möglichen Sachen drin. Zb auch zwei Strassenangaben, getrennt durch Slash, alternative Hausnummern in Klammern und mit Fragezeichen, Strassenangaben ohne Hausnummern und anderes.
    Ja ist sie. Aber wäre ich Lehrling bei Dir , hätte ich sie womöglich nicht stellen müssen
    Wie anders sollte man das auch behandeln, wenn nicht von Hand.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Storch, 18. Mai 2015
    #28
  14. Irgendwie glaube ich nicht, dass Du so denkst aber manchmal kommt es mir so vor, als hieltest Du mich für einen Vollidioten. Treffe ich ein Aussage, hast Du Einwände. Für Deine Einwände hast Du mit Sicherheit Gründe, ich habe aber für meine Aussagen auch Gründe.

    Ich habe nirgendwo gesagt, dass ich eine Korrektur durch das Programm wünsche, denn das ist gar nicht möglich bzw. sinnvoll.

    Meine Anwendung wird ein Tourenplaner für meine LAG, die für eine Handelsagentur im Aussendienst arbeitet.

    Von der Handelsagentur (Drittanwendung) kommt per Import z.B. folgende Straßenangabe:

    Bergstr. 45 / Lehmstr. 13 (ich finde sowas zwar unmöglich, kann es aber nicht ändern)

    Soll das Programm jetzt die erste Angabe oder die zweite Angabe wegputzen? Wie soll das Programm entscheiden, welche Angabe richtig ist?
    Fährt der Außendienstler jetzt einfach zu der Adresse, die die Korrektur übrig gelassen hat? Wohl eher nicht.

    Der Aussendienstler ist am Kunden und es ist seine Sache, solch missratene Adressen zu eruieren und die Daten entsprechend anzupassen. Und da reicht es IMHO völlig, wenn das Programm sagt: 'Die Angabe ist Falsch' und um weitere Mistverständnisse zu vermeiden:

    Mit 'Die Angabe ist Falsch' meine ich, dass dem Anwender genau gesagt wird, welche Angabe falsch ist.

    Und für den Einwand, der Anwender muss aber auch wissen, was falsch ist:
    Im Falle der Adressen gedenke ich nicht, jede Prüfung einzeln zu machen, sondern, wie in #1 beschrieben,
    zwei Fehlerkategorien zu unterscheiden. Ungültige und Unklare. Dann gibt es eine Hilfe, wo drin steht, welche Fehler genau je Kategorie gemeldet werden
    und zudem wissen normal-intelligente Menschen auch so, wie eine korrekte Straßenangabe auszusehen hat. Dem Bimbo, der meine LAG ist, traue ich das jedenfalls zu.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Storch, 18. Mai 2015
    #29
  15. Uwe, was bitte ist eine LAG?
    Ist ja bestimmt keine Laufstall-Arbeits-Gemeinschaft wie unter Google zu finden. *wink.gif**biggrin.gif*
     
    Marsu65, 18. Mai 2015
    #30
Thema:

RegEx fehlende Hausnummer in Straße

Die Seite wird geladen...
  1. RegEx fehlende Hausnummer in Straße - Similar Threads - RegEx fehlende Hausnummer

  2. Fehlende Zeichen einfügen

    in Microsoft Excel Hilfe
    Fehlende Zeichen einfügen: Hallo VBA Kollegen! Ich habe wieder einmal ein kleines Problem. Ich muss im String1 mit einem anderen String2 vergleichen und die Buchstaben die im String2 aber nicht im String1 vorhanden sind...
  3. (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?

    in Microsoft Excel Hilfe
    (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?: Liebe Experten, Gefilterte Daten sollen in ein Listobject übertragen werden. Für das Listobject habe ich ein Template angelegt, dass alle Formatierungen (u.a. bedingte Formatierung etc.) enthält....
  4. Fehlende fortlaufende Nummer feststellen

    in Microsoft Excel Hilfe
    Fehlende fortlaufende Nummer feststellen: Hallo zusammen, ich möchte gerne in Excel angezeigt bekommen, wenn eine fortlaufende Nummer fehlt. Leider hat die bedingte Formatierung mir nicht geholfen. Vorher noch zwei kurze Fragen: Kann...
  5. Word-RegEx für Wort, das mindestens eine Ziffer enthält

    in Microsoft Word Hilfe
    Word-RegEx für Wort, das mindestens eine Ziffer enthält: Wie finde ich in Microsoft Word per RegEx (erweiterte Suche, Platzhaltersuche) ein Wort, das eine Ziffer enthält? <*[0-9]*> habe ich probiert, funktioniert aber nicht, da es über Wortgrenzen...
  6. Pivot Tabelle aus 2 Tabellen, fehlende Optionen

    in Microsoft Excel Hilfe
    Pivot Tabelle aus 2 Tabellen, fehlende Optionen: Hallo, ich benutze Microsoft 365 auf dem Macbook und versuche oft Videotutorials über Excel zu folgen, finde dann aber die gezeigten Optionen bei mir nicht. Zu Beispiel versuche gerade eine...
  7. Strom und Gasverbrauch: Fehlende Tage automatisch in Tabelle hinzufügen

    in Microsoft Excel Hilfe
    Strom und Gasverbrauch: Fehlende Tage automatisch in Tabelle hinzufügen: Hallo! ich habe seit 5 Jahren in meiner Wohnung immer mal wieder meinen Strom und Gas Zähler notiert. Allerdings habe ich dies sehr unregelmäßig gemacht, sodass die Auswertung in Excel nicht...
  8. Import von XML-Dateien in Access

    in Microsoft Access Hilfe
    Import von XML-Dateien in Access: Hallo zusammen, ich möchte eine Menge von XML-Dateien in Access 2016 importieren und verwende dazu die Importfunktion für XML-Dateien unter Externe Daten im Menü. Die Dateien enthalten einige 100...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden