2016-03-29 15 views
-1

gefolgt auszuwählen Also ich folgende XML-Elemente haben:XML-Schema regex - wie Großbuchstaben durch Kleinbuchstaben

<branch> 
    <branchName>Emperor</branchName> 
</branch> 

und

<branch> 
    <branchName>Perception<branchName> 
</branch> 

.. und so weiter, von denen alle beginnen mit ein Großbuchstabe und der Rest ist Kleinbuchstaben. Ich habe versucht, Regex zu verwenden, zu erfassen diese aber dies mein erstes Mal ist es eine Verwendung ich folgendes werfen nur zusammen:

"[A-Z](([a-z])*)" 

Als ich versuchte, mein Schema zu validieren die validator mit es nicht funktioniert, ich habe einen Fehler sagen:

ERROR - cvc-pattern-valid: Value 'Emperor' is not facet-valid with respect to pattern '[A-Z](([a-z])*)' for type '#AnonType_branchNamebranchbranches'. 
ERROR - cvc-type.3.1.3: The value 'Emperor' of element 'branchName' is not valid. 
ERROR - cvc-pattern-valid: Value 'Perception' is not facet-valid with respect to pattern '[A-Z](([a-z])*)' for type '#AnonType_branchNamebranchbranches'. 
ERROR - cvc-type.3.1.3: The value 'Perception' of element 'branchName' is not valid. 

Wesentlichen auf w3schools Version ich sah, wie die Daten zu beschränken. Danach habe ich mich nach einem Tutorial für reguläre Ausdrücke umgeschaut, aber keiner zeigt, wie man Ausdrücke kombiniert, sie zeigen nur, wie man einzelne Teile schreibt.

1) Meine Frage ist, wie zeige ich dies mit einem regulären Ausdruck? (Ein Groß gefolgt von n Anzahl von Kleinschreibung)

2) könnten Sie mir ein gutes Tutorial lenken, die von Anfang zeigt am Ende, wie einen regulären Ausdruck für xml erstellen

(Eine Antwort auf 1 geschätzt wird aber nur wenn 2 auch beantwortet wird. Ich möchte das für mich selbst lernen)

bearbeiten 31/03/2016 @ 01:38: Die Frage geändert, um zu machen, was ich mehr gefragt habe.

+0

Ihr regulärer Ausdruck ist korrekt: Er entspricht einer Zeichenfolge, die mit einem (englischen) Großbuchstaben beginnt, wobei der Rest klein geschrieben ist. Wenn es "nicht funktioniert", dann sagen Sie uns, wie es scheitert. Ihre Regex kann zu '[A-Z] [a-z] *' vereinfacht werden; Die Klammern sind überflüssig, aber nicht falsch. Wenn Sie nach dem Großbuchstaben mindestens einen Kleinbuchstaben benötigen, ändern Sie "*" in "+". –

+1

Downvoting, weil jede Frage, die etwas sagt, "nicht funktioniert", ohne zu sagen, wie es scheitert, einen Downvote verdient. –

+0

Wir lesen * aber es funktioniert nicht * aber keine Fehlermeldung lesen. Wir lesen auch eine ausführliche Regex, aber keine, die einen Fehler verursachen würde. Schließlich lesen wir XML ohne ein einziges Root-Element, aber wir wissen nicht, wo das eigentliche Problem liegt, weil Sie keine Fehlermeldung erhalten haben. – kjhughes

Antwort

0

1) Meine Frage ist, wie zeige ich dies mit einem regulären Ausdruck? (Ein Großbuchstabe, gefolgt von einer Anzahl n kleinerer Fälle)

Verwenden von Regex wie folgt.

Regex:^[A-Z][a-z]+. Wenn Sie * anstelle von + verwenden, wird es auch übereinstimmen, gibt es zero Kleinbuchstaben.

Regex101 Demo

+1

Regex101 ist ein ziemlich nettes Werkzeug. Danke, dass du es aufgezeigt hast. – James

-1

Sie mit ausprobieren können^es aBc auch als richtige Zeichenfolge übereinstimmen.

^[A-Z][a-z]+ 
+0

▲ um das zu verdeutlichen. Ich nahm an, dass die Zeichenfolge von OP mit Großbuchstaben beginnt. –

+1

Falsche Antwort. In XSD sind reguläre Ausdrücke implizit verankert, und die Zeichen "^" und "$" werden nicht verwendet, um den Anfang und das Ende der Zeichenfolge abzugleichen. –

Verwandte Themen