Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Regular Expressions Knobelaufgabe

Mitglied: problemsolver

Überprüfung einer Artikelnummer mit Hilfe von Regular Expressions

Hallo zusammen,

ich bräuchte dringend einmal Hilfe bzgl. Regular Expressions.
Und zwar soll ein String auf Richtigkeit geprüft werden.

---
Stringbeispiele: audi123, halter001B, db 2032B, hein022wab, bmw 12345ABC
---

Folgende Rahmenbedingungen:
1.) Der String darf nur die Zeichen A-Z, a-z und 0,9 und das Leerzeichen enthalten.
2.) Die maximale Länge des Strings darf 14 Zeichen nicht überschreiten.
3.) Der String muss mit mindestens 2 Buchstaben (s.o.) anfangen und danach dürfen maximal 4 weitere Buchstaben folgen. Also minimal 2 Buchstaben und maximal 6 Buchstaben. Das Auffüllen mit Leerzeichen bis zur 5.ten Stelle ist erlaubt. (Zum Beispiel "db<leer><leer>2032B"
4.) Nach den Buchstaben müssen mindesten 3 Zahlen (zum Beispiel 001) folgen, maximal dürfen es 5 sein.
5.) Nach den Zahlen dürfen Buchstaben folgen, ist aber nicht zwingend. Die maximale Buchstabenanzahl beträgt hier also von 0 bis 3.

Wer kann mir hieraus einen Regexp-Ausdruck entwickeln, damit ich den String auf Richtigkeit überprüfen kann?

Vielen Vielen Dank schon einmal im Voraus!

Gruß

Markus

Content-Key: 33905

Url: https://administrator.de/contentid/33905

Ausgedruckt am: 26.11.2021 um 14:11 Uhr

Mitglied: 6890
6890 11.06.2006 um 22:19:20 Uhr
Goto Top
hallo,

so nach viertelstündiger anspornphase und buchlesens hab ichs (das denke ich zumindest) hinbekommen:

^[a-zA-Z]{2,6}[\s]{0,3}[\d]{3,5}[a-zA-Z]{0,3}$

ich denke das dürfte es sein :-) face-smile

ohh das muss ich dazusagen das sind jetzt perl regex!!

mfg godlike P
Mitglied: Biber
Biber 11.06.2006 um 22:39:53 Uhr
Goto Top
Hm...so weit war ich gestern auch schon.... aber was sich nicht sicherstellen lässt, ist die Bedingung mit den max. 14 Zeichen Länge.
Da habe ich beim Knobeln keinen Weg gefunden, das sicherzustellen.

^[a-zA-Z]{2,6} ....max. 6 Zeichen erlaubt,
....[\s]{0,3} ......+max. 3 Leerzeichen macht 9
...[\d]{3,5} .... plus 3 bis 5 Ziffern macht 14
...[a-zA-Z]{0,3}$ ............-->und nach den 14 dürfen noch 3 kommen.... *grml*

Habe gestern an dieser Stelle abgebrochen und lieger ein paar Sudokus gemacht.
Oder wie immer diese leckeren Grillwürstchen heißen. ;-) face-wink

Gruß und danke fürs Posten
Biber
Mitglied: 6890
6890 11.06.2006 um 22:53:37 Uhr
Goto Top
[EDIT]

siehe unten ;-) face-wink

[/EDIT]
Mitglied: 6890
6890 11.06.2006 um 23:10:06 Uhr
Goto Top
so aba jetzt nach langem knobeln:

^[a-zA-Z]{2}[a-zA-Z\s]{0,4}[\d]{3,5}[a-zA-Z]{0,3}$

wenns das ni is weiß ich och ni!!!!

schönen abend

godlike P
Mitglied: problemsolver
problemsolver 11.06.2006 um 23:20:25 Uhr
Goto Top
Was haltet Ihr hiervon?

^([a-z]{2}[\s]{2}|[a-z]{3}[\s]{1}|[a-z]{4}|[a-z]{6})([0-9]{3,7})([a-z]{0,3})$

ich denke mal, dass das die Lösung ist... habe dann noch einige Seiten und Foren gewälzt.
Es scheint zu funktionieren... Was sagt Ihr dazu?

Danke für eure Antworten :-) face-smile

Lieben Gruß

Markus
Mitglied: Biber
Biber 11.06.2006 um 23:36:24 Uhr
Goto Top
Nö, das isses nich...

^[a-zA-Z]{2}[a-zA-Z\s]{0,4}[\d]{3,5}[a-zA-Z]{0,3}$
...denn dann könnten nach den ersten zwei Nur-Buchstabenzeichen anschließend 0-4 Zeichen mit (Buchstaben und Leerzeichen) in beliebiger Reihenfolge kommen.

Also z.B "VW TDI 001x"

^[a-zA-Z]{2}[a-zA-Z]{0-4}[\s]{0,2}[\d]{3,5}[a-zA-Z]{0,3}$

wobei leider wieder die Restriktion 14-Zeichen-maximal auf der Strecke bleibt.
Ich scheitere auch daran, dass ich keine gültige Syntax hinbekomme, die die Bedingungen
(0 bis 4 Buchstaben gefolgt von 0 bis 3 Leerzeichen) UND (alles zusammen aber max 4 Zeichen lang)
kombiniert.
Evtl ginge ^[a-zA-Z]{2}([a-zA-Z]{0-4}|[\s]{0,2})[\d]{3,5}[a-zA-Z]{0,3}$ ??

Gruß
Biber
Mitglied: 6890
6890 11.06.2006 um 23:46:54 Uhr
Goto Top
also mit deinem geht zb das db 2032B ni, den du berücksichtigst nicht das nur 1 leerzeichen sein darf deswegen und ohne angeben zu wollen ;-) face-wink

meins funktioniert!!!!

^[a-zA-Z]{2}[a-zA-Z\s]{0,4}[\d]{3,5}[a-zA-Z]{0,3}$

mfg godlike P
Mitglied: problemsolver
problemsolver 12.06.2006 um 08:27:36 Uhr
Goto Top
Hallo zusammen,

ich find's super, dass ihr euch so sehr dafür einsetzt.
Folgendes nochmal vielleicht zur Verdeutlichung:

Unsere Artikelnummer ist wie folgt aufgebaut:

erste Variante:
BB(BB) ZZZ(ZZ) (BBB)

Bei den ersten B's MÜSSEN zwei Buchstaben stehen und werden bis 4 mit Leerzeichen aufgefüllt.
Ergo: 2 Buchstaben 2 Leerzeichen/ 3 Buchstaben 1 Leerzeichen / 4 Buchstaben 0 Leerzeichen.
Danach folgt entweder 012 oder 1234 oder 10021 (also min 3 Zahlen und max 5 Zahlen).
Danach folgen optional noch BUchstaben. (mind. 0 und max 3 Buchstaben)

Die zweite Variante, die mitgeprüft werden muss, sind 6 Buchstaben am Anfang, wie folgt:
BBBBBB ZZZ(ZZ) (BBB) = 14 Zeichen maximal

Ich habe gerade nochmal bei uns die dementsprechenden Leute in der Firma gefragt:
Einen Artikel mit 5 Buchstaben am Anfang gibt es nicht. (Also dementsprechend von 2 bis 4 oder 6 Buchstaben am anfang)

Jetzt frag bitte keiner nach der Logik ;-) face-wink Hat sich im Laufe der Jahre halt bei uns so entwickelt...

Vielen Dank für eure tatkräftige Unterstützung :-) face-smile

Gruß

Markus
Mitglied: 6890
6890 12.06.2006 um 08:53:40 Uhr
Goto Top
morsche,
also:
Bei den ersten B's MÜSSEN zwei Buchstaben stehen

^[a-zA-Z]{2}

und werden bis 4 mit
Leerzeichen aufgefüllt.

[\s]{4}|

Ergo: 2 Buchstaben 2 Leerzeichen

([a-zA-Z]{2}[\s]{2}|

3 Buchstaben 1 Leerzeichen

[a-zA-Z]{3}[\s]{1}|

4 Buchstaben 0 Leerzeichen.

[a-zA-Z]{4})

Danach folgt entweder 012 oder 1234 oder

[0-9]{3,5}

Danach folgen optional noch BUchstaben.
(mind. 0 und max 3 Buchstaben)

[a-zA-Z]{0,3}$

Die zweite Variante, die mitgeprüft
werden muss, sind 6 Buchstaben am Anfang,
wie folgt:
BBBBBB ZZZ(ZZ) (BBB) = 14 Zeichen maximal

^[a-zA-Z]{2}([a-zA-Z]{4}|


das ergibt als reg_ex:

^[a-zA-Z]{2}([a-zA-Z]{2}[\s]{2}|[a-zA-Z]{3}[\s]{1}|[a-zA-Z]{4}|[\s]{4})[0-9]{3,5}[a-zA-Z]{0,3}$


Vielen Dank für eure tatkräftige
Unterstützung :-) face-smile

Bidde ;-) face-wink

mfg godlike P
Mitglied: Biber
Biber 12.06.2006 um 10:12:28 Uhr
Goto Top
Jepp, godlike,

das könnte es nun wirklich sein.

Allerdings würde ich diese Zeile nur dann in produktive Sourcen einbauen, wenn auch Deine gesamte Herleitung als Kommentar darüber steht.. das kann sonst nicht gewartet werden.
Anders ausgedrückt: in 3 Monaten, beim Wieder-Angucken, hat auch der Autor eine halbe Stunde nötig, um die Zeile wieder nachzuvollziehen.

Eine Urlaubsvertretung dagegen würde wahrscheinlich sofort vom Balkon springen....

Gruß
Biber
Mitglied: 6890
6890 12.06.2006 um 10:23:42 Uhr
Goto Top
Allerdings würde ich diese Zeile nur
dann in produktive Sourcen einbauen, wenn
auch Deine gesamte Herleitung als Kommentar
darüber steht..


wenn das gewollt is, mit der herrleitung, dann bin ich natürlich so freundlich und schreib die noch.

einfach bescheid sagen

mfg godlike P
Heiß diskutierte Beiträge
question
Installationsproblem Office 2021 - alle Links öffnen Edge! gelöst SarekHLVor 1 TagFrageMicrosoft Office14 Kommentare

Hallo zusammen, ich habe gerade Office 2021 auf einem Notebook installiert und habe ein seltsames Phänomen! Die Verknüpfungen zu den Office-Programmen führen allesamt zu Edge! ...

question
Umzug von Hyper-V zu VMware und erneute Aktivierung von Windowspianoman82Vor 1 TagFrageWindows Server10 Kommentare

Hallo! Ich habe eine Frage im Hinblick auf Windows-Aktivierung da mir hier aktuell der Ansatz fehlt. Es geht um die Migration von diversen Windows Server ...

question
VPN Tunnel inkonsistent? gelöst NespressoVor 1 TagFrageNetzwerkprotokolle4 Kommentare

Hallo zusammen, das Thema VPN ist bei mir recht neu, doch habe ich es hinbekommen den Windows Server 2016 eigenen VPN dienst zu konfigurieren und ...

question
Eigener Server für Groupware und Nextcloudjonny-flashVor 1 TagFrageE-Mail5 Kommentare

Hallo zusammen, ich darf für ein kleines Startup temporär die Administration übernehmen, und habe bevor es los geht ein paar Fragen, die ich hier gern ...

question
WSUS Problem mit Office + ExplorerfrenchfriesguyVor 1 TagFrageWindows Update7 Kommentare

Hallo zusammen ich/wir haben folgendes Problem mit einem Teil unseres Windows-Clients (W10E, 20H2) in Verbindung mit den Windows Updates. Die Updates werden über einen WSUS-Server ...

question
VPN- 2 Sicherheitsfunktionen gelöst TekamolosVor 1 TagFrageVerschlüsselung & Zertifikate3 Kommentare

Hallo Jungs, beim Lernen habe ich diese Frage bekommen, da es im Internet sehr viel über VPN und viel Text und Protokolle gibt, war ich ...

question
Über das Notebook per Simkarte von unterwegs aus ins Internet?isarc01Vor 19 StundenFrage5G, 4G, LTE, UMTS, EDGE & GPRS8 Kommentare

Hallo, folgende Frage: Wenn ich über mein Notebook über eine angemeldete SIM Karte mit einer Datenflatrate ins Internet gehen möchte, benötige ich hier einen bestimmten ...

question
Mobilfunk-Internet ins Heimnetzwerk integrieren? gelöst AvarianVor 13 StundenFrageNetzwerkmanagement6 Kommentare

Hallo, Ich bin neu hier. Wir sind vorletztes Jahr umgezogen. Die Gelegenheit habe ich damals direkt genutzt, um künftig auf wackelige WLAN-Lösungen (Repeater, Mesh-Repeater, Powerlines ...