我想用XSD文件验证xml文件的属性。此属性必须包含逗号分隔语言的列表,如下所示:
<Params languages="English,French,Spanish" /> // OK
<Params languages="French,Spanish" /> // OK
<Params languages="French" /> // OK
<Params languages="English,French,Spanish,French" /> // NOK (Two times French)
<Params languages="English,Spanish,French," /> // NOK (Comma at the end)
所以我尝试编写一个正则表达式模式来验证这一点。以下是约束条件:
最后两个限制是问题,我不知道该怎么做。
这是我现在得到的:
^[English,|French,|Spanish,...]+$
但它确实很差。谢谢你的帮助。
答案 0 :(得分:1)
以下正则表达式将满足您的所有要求,
^(English|French|Spanish)(?:,(?!\1)(English|French|Spanish))?(?:,(?!\1|\2)(English|French|Spanish))?$
<强>更新强>
^(English|French|Spanish|German)(?:,(?!\1)(English|French|Spanish|German))?(?:,(?!\1|\2)(English|French|Spanish|German))?(?:,(?!\1|\2|\3)(English|French|Spanish|German))?$