2016-04-07 5 views
0

Iam unter regulärem Ausdruck zur Zeit in XSD wie untenRegulärer Ausdruck Muster für das Erlauben null und leere

<xs:pattern value="[A-Z]{3}"/> 

Dies funktioniert für Alphabete in Ordnung.

Aber iam versuchen, null, damit auch diese, aber

i

[null]|[A-Z]{3} 

versucht, setzen nicht

konnte aber akzeptiert auch nicht null.

Ich möchte null oder leer akzeptiert werden.

bitte

+0

Ich denke, das wäre '([A-Z] {3} |)'. Beachten Sie die Änderung, die eine leere oder leere Zeichenfolge zulässt. –

+0

Oder ''. Beachten Sie, dass eine Regex auf Text angewendet wird und keinen 'Null'-Wert, nur eine leere Zeichenfolge, ermitteln kann. –

+1

Was meinst du mit "null"? Sprechen Sie über die Zeichenfolge ('n', 'u', 'l', 'l') oder über etwas anderes? Es gibt kein Konzept von "null" in irgendeiner der XML-Spezifikationen, daher ist nicht klar, worüber Sie sprechen. Darüber hinaus gibt es mehrere mögliche Bedeutungen von "leer". –

Antwort

0

Ein regex auf Text arbeitet helfen und nicht bestimmen kann, ob ein String null ist, kann es nur bestimmen, ob ein String leer ist.

Um ein Spiel optional zu machen, können Sie das gesamte Muster in eine (Nicht-) Erfassung Gruppe und fügen Sie einen ? quantifier nachdem sie umschließen:

<xs:pattern value="([A-Z]{3})?"/> 

Seit pattern regex is anchored by default, diese ([A-Z]{3})? wird passen entweder ein leeres Zeichenfolge oder eine Zeichenfolge, die nur 3 ASCII-Großbuchstaben enthält.