RegularExpression - Leerzeichen
Hallo,
vermutlich liegt es daran, dass ich sie so selten nutze: Mit regulären Ausdrücken stehe ich auf Kriegsfuß. Vielleicht mag mir jemand helfen:
Ich habe eine Zeichenfolge mit ideal folgendem Aufbau:
A123-456X
und möchte hieraus den Zahlenwert 123456 extrahieren.
In der Praxis - viele Anwender - kommen diverse Abweichungen vor, die ebenfalls erkannt werden wollen:
- auch 7- und mehrstellige Ausgaben sind möglich ("-" als Tausendertrennzeichen, also auch A-12-345-678)
- manchmal fehlt der Bindestrich (A123456X),
- manchmal wird der Bindestrich durch ein Leerzeichen ersetzt (A123 456X),
- mal um ein Leerzeichen erweitert (A123 - 456X).
Soweit bin ich gekommen:
preg_match('/A[0-9]+-\\d\\d\\dX/i', $quelle, $ziel);
Kann mir jemand mit den Sonderfällen weiterhelfen?
Viele Grüße
Marcus
PS Es geht darum, dass auf einem Klassenkonto eingehende Überweisungen anhand des Verwendungszwecks einem Schüler mit dessen Schüler-Nr. zugeordnet wird. Ich kann die Eingabe daher nicht über das Eingabeformular regulieren.
vermutlich liegt es daran, dass ich sie so selten nutze: Mit regulären Ausdrücken stehe ich auf Kriegsfuß. Vielleicht mag mir jemand helfen:
Ich habe eine Zeichenfolge mit ideal folgendem Aufbau:
A123-456X
und möchte hieraus den Zahlenwert 123456 extrahieren.
In der Praxis - viele Anwender - kommen diverse Abweichungen vor, die ebenfalls erkannt werden wollen:
- auch 7- und mehrstellige Ausgaben sind möglich ("-" als Tausendertrennzeichen, also auch A-12-345-678)
- manchmal fehlt der Bindestrich (A123456X),
- manchmal wird der Bindestrich durch ein Leerzeichen ersetzt (A123 456X),
- mal um ein Leerzeichen erweitert (A123 - 456X).
Soweit bin ich gekommen:
preg_match('/A[0-9]+-\\d\\d\\dX/i', $quelle, $ziel);
Kann mir jemand mit den Sonderfällen weiterhelfen?
Viele Grüße
Marcus
PS Es geht darum, dass auf einem Klassenkonto eingehende Überweisungen anhand des Verwendungszwecks einem Schüler mit dessen Schüler-Nr. zugeordnet wird. Ich kann die Eingabe daher nicht über das Eingabeformular regulieren.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7596499639
Url: https://administrator.de/contentid/7596499639
Ausgedruckt am: 21.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Nimm preg_replace, alles was nicht eine Zahl ist ersetzen durch nichts, fertig ist die Soße ...
https://tio.run/##K8go@P/fxr4go4ArNTkjX6GgKDU9vii1ICcxOVVDXT86LiYlVl9dRx ...
Zeppel
$number = preg_replace('/[^\d]/','','A123 - 456X');
Zeppel