2016-03-29 6 views
-1

続く大文字を選択する方法だから私は、XML要素以下にあります:で始まるすべてが、そうでXMLスキーマ正規表現 - すべて小文字

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

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

を...と大文字で、残りは小文字です。私はそれが動作しませんでしたvalidatorを使用して、私のスキーマを検証しようとした

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

が、私はエラーを得た:私は、次の私は一緒に投げ、それを使用して、これはしかし、これは私の最初の時間でキャプチャするために正規表現を使用しようとしました

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. 

私は実質的にデータを制限する方法のw3schoolsバージョンを見ました。その後、私は正規表現のチュートリアルを見て回りましたが、式をどのように組み合わせるかはわかりません。個々のパーツを書く方法を示しています。

1)私の質問は、これを正規表現を使ってどのように表示するのですか? (下の例のn数が続く大文字)

2)あなたは(1への回答が評価され、XML

のための正規表現を作成する方法を最初から最後まで示して良いチュートリアルに私を指示でき私は自分自身のためにこれを学びたい)

編集31/03/2016 @ 01:38:私がより明確に求めているものを作るために質問を変更しました。

+0

正規表現は正しいです:大文字の英字で始まり、残りは小文字で始まる任意の文字列に一致します。 「うまくいかない」場合は、どのように失敗するか教えてください。正規表現は '[A-Z] [a-z] *'に単純化することができます。かっこは重複していますが間違っていません。大文字の後に少なくとも1つの小文字が必要な場合は、「*」を「+」に変更します。 –

+1

何が "うまくいかない"と言っても、それがいかに失敗するかを言わずにダウンボートに値するので、ダウン投票。 –

+0

*ただし、動作しません。*エラーメッセージは表示されません。冗長な正規表現は読んでいますが、エラーの原因となるものはありません。最後に、単一のルート要素なしでXMLを読んでいますが、エラーメッセージを表示していないため、実際の問題がどこにあるかはわかりません。 – kjhughes

答えて

0

1)私は正規表現を使用してこれをどのように表示しますか? (大文字とそれに続くn個の小文字)

このような正規表現を使用する。

正規表現:^[A-Z][a-z]++の代わりに*を使用すると、zeroの小文字も一致します。

Regex101 Demo

+1

Regex101はかなりきれいなツールです。それを指摘してくれてありがとう。 – James

-1

あなたはそれが正しい文字列としてもABCと一致します^アウトにして試すことができます。

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

▲それを指摘してください。私は、OPの文字列が大文字小文字の区別から始まると仮定しました。 –

+1

間違った答えです。 XSDでは、正規表現は暗黙的にアンカーされ、 "^"と "$"文字は文字列の先頭と末尾の一致には使用されません。 –

関連する問題