xml架构正则表达式 - 如何选择大写字母后跟全部小写

时间:2016-03-29 18:13:58

标签: regex xml xsd

所以我必须遵循XML元素:

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

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

..等等,所有这些都以大写字母开头,其余的都是小写字母。我尝试使用正则表达式来捕获它,但这是我第一次使用它而我只是将以下内容放在一起:

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

当我尝试使用validator验证我的架构时,它无效,我收到错误消息:

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)你能指导我一个好的教程,从头到尾显示如何为xml创建正则表达式

(对1的回答表示赞赏,但只有2也得到了解答。我确实想为自己学习这个)

edit 31/03/2016 @ 01:38:改变了问题,以便让我的要求更清楚。

2 个答案:

答案 0 :(得分:0)

  

1)我的问题是如何使用正则表达式显示它? (大写后跟n个小写)

使用这样的正则表达式。

正则表达式: ^[A-Z][a-z]+。如果您使用*代替+,那么它也会匹配zero小写字母。

<强> Regex101 Demo

答案 1 :(得分:-1)

你可以尝试使用out ^它将aBc也匹配为正确的字符串。

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