Tach!
ich bin gerade dabei eine kleine funktion zu basteln, die aus verschiedenen texten rufnummern filern und ersetzen soll
ich hab da mal ein anfang gemacht und mich mit regex rumgeschlagen ... holla die waldfee ... wer es kann liebt es bestimmt, aber ich hasse es ;)Du kannst es dir leichter machen, wenn du nicht einen Riesenausdruck zu bauen versuchst, sondern für jedes Muster einen eigenen Ausdruck erstellst. Diese lässt du nacheinander auf die Nummer los und schaust, ob irgendeiner passt.
hm, das habe ich noch nicht getestet ...
das problem ist ja, dass es ein text unbekannter länge ist, beispielsweise eine notiz ala:
hallo frau müller
der herr frank (0123 45678900) hat versucht den herrn meier (02545/4654654) zu erreichen, leider erfolglos! plan 08/15 muss unbedingt fertig werden!
nur so als beispiel, und da ich nicht unnötigen "müll" treffen wollte, hab ich gedacht, muss ich sowieso in einem machen
Ländervorwahl
_Landes_vorwahl, es ist ja die eines Landes, nicht mehrerer (mit Ausnahme von Zone 7).
[+][0-9]{2,4}[ |/|.|-]? +49_
In []-Klammern steht eine Zeichenklasse. [...]
verstehe, danke, das macht es zumindest schonmal ein wenig übersichtlicher ;)
|00[0-9]{2,4}[ |/|.|-]? 0049_
Hier wäre 00[1-9]\d{1,3} richtiger, weil die erste Ziffer nach der IVAZ[*] keine 0 sein kann. Und \d steht für Ziffern, kann also [0-9] ersetzen.
das dachte ich mir auch, hab es dann aber zum wohle der übersichtlichkeit (haha) übergangen ;)
preg_match_all("~([+][0-9]{2,4}[ |/|\.|\-]?|00[0-9]{2,4}[ |/|\.|\-]?|0|\(0)([0-9]{2,5}[\)]?[ |/|\.|\-]?)([\- 0-9]+)~m",$notiz['msg'],$telefonnummern);
Selbst wenn ich den Ausdruck um überflüssige Zeichen erleichtere
~(+\d{2,4}[ /.-]?|00\d{2,4}[ /.-]?|0|(0)(\d{2,5})?[ /.-]?)([-\d]+)~m
ist er mir noch zu komplex, um ihn im Moment vollständig nachzuvollziehen.
wäre eine noch einigermaßen akzeptable und verbreitete Schreibweise, weil die 0 aus dem Inland mitgewählt werden muss, aus dem Ausland aber nicht. Einfach zu verstehen ist es trotzdem nicht. Vermutlich aber hast du hier keinen Spielraum und musst den Mist verarbeiten, den du bekommst. Herzliches Beileid.
danke, und ja, ich muss den mist verarbeiten ...
leider habe ich auf die daten die da rein kommen nicht wirklich zugriff oder einflussmöglichkeit, um diese direkt bei der eingabe ein wenig zu validieren
btw: für optimierungsvorschläge die NICHT die übersichtlichkeit für anfänger flöten lassen gehen bin ich auch dankbar ;)
Definiere Übersichtlichkeit.
Übersichtlich ist es dahingehend für mich, dass ich 3 abschnitte habe, in denen ich jeweils verschiedene möglichkeiten abklappern kann ... also für mich ist es so verständlicher, als ganz klein gemacht
aber dennoch danke erstmal bis hierhin, ein stück schlauer bin ich auf jeden fall ;)