具有至少一个字符但不仅仅是特定字符的字符串

时间:2017-03-21 13:19:06

标签: regex xsd

我试图寻找答案,但却无法轻易找到答案。如果这是一个重复的问题,请重新指导:

需要确保字符串对以下内容有效: [\p{L}\p{N}+-]+

现在这可以确保字符串至少包含一个有效的unicode字母,一个数字或符号+和 -

我有一个特定的场景,我不希望字符串只包含+和 -

只有在有效字母或数字之前或之后才允许使用这些符号。

1 个答案:

答案 0 :(得分:1)

您可以使用

<xs:pattern value="[-+]?[\p{L}\p{N}]+([-+][\p{L}\p{N}]+)*[-+]?"/>

请参阅regex demo

由于XML Schema regexp默认是锚定的,因此模式匹配满足以下模式序列的整个字符串:

  • [-+]? - 一个可选的-+
  • [\p{L}\p{N}]+ - 1+个字母/数字
  • ([-+][\p{L}\p{N}]+)* - 0或更多序列
    • [-+] - 一个-+
    • [\p{L}\p{N}]+ - 1+个字母/数字
  • [-+]? - 一个可选的-+