XML-Schema, Pattern das Zeichenfolge ausschließt

Hallo,

Ich habe ein XML-Schema-Problem, genauer ein Problem beim Erstellen eines Pattern (RegExpression).

In einem Schema darf ein Element nur aus genau 2 Buchstaben gefolgt von genau 6 Ziffern bestehen, Bsp.: AB123456 oder XY000001 oder TT109999

Das Pattern zur Validierung wäre: „[A-Z]{2}\d{6}“

Nun mein Problem:
Die 6 Ziffern sind in jeder Kombination erlaubt, nur nicht genau 6 Nullen „000000“ in Folge, Bsp.: AB000000 oder XY000000 ist nicht erlaubt

Wie ich das als Pattern definiere soll weiß ich einfach nicht.

Mein Ansatz, der natürlich nicht funktioniert (weil das ^ ja nur für eine Zeichenklasse gilt), aber meinen Gedankengang zeigt ist: „[A-Z]{2}(\d{6}^|^000000)“

Kann jemand helfen?

Hallo,

Das Pattern zur Validierung wäre: „[A-Z]{2}\d{6}“

Nun mein Problem:
Die 6 Ziffern sind in jeder Kombination erlaubt, nur nicht
genau 6 Nullen „000000“ in Folge, Bsp.: AB000000 oder XY000000
ist nicht erlaubt

Mir fällt da spontan nur ein die erlaubten Kombinationen aufzuzählen. Also jeweils beliebige Ziffern und an einer Stelle eben nur 1-9. Vereinfacht auf eine 4-stellige Zahl würde das dann so aussehen:

[1-9]\d{3}|\d[1-9]\d{2}|\d{2}[1-9]\d|\d{3}[1-9]

Wenn du eine elegantere Lösung findest lass es uns wissen.

Gruß
Heavy

  • Längenbeschränkung
    Hallo nochmal,

man kann meines Wissens eine Längenvorgabe mit einem Pattern kombinieren, dann wird auch der reguläre Ausdruck etwas schöner. 2 Buchstaben A-Z, eine Ziffer 1-9 sowie davor und danach maximal 5 beliebige Ziffern. Wenn der komplette String jetzt noch genau 8 Zeichen lang ist sollten deine Regeln berücksichtigt sein.

Gruß
Heavy

Gut gedacht und vielen Dank, das ist des Rätsels Lösung :smile:

Getestet, funktioniert, SUPER + DANKE :smile:

Abschließend frage ich mich, was wäre, wenn die Aufgabenstellung nicht auf eine Ziffernfolge abzielt, sondern auf eine besondere Zeichenkombination.

Bsp.: Genau 2 Ziffern und 6 Zeichen/Buchstaben sind erlaubt „\d{2}[A-Z]{6}“ („12ABCDEF“ wäre ok), aber die Zeichenfolge „WERWAS“ nicht („12WERWAS“ nicht ok)…

*grübel…