我试图寻找答案,但却无法轻易找到答案。如果这是一个重复的问题,请重新指导:
需要确保字符串对以下内容有效:
[\p{L}\p{N}+-]+
现在这可以确保字符串至少包含一个有效的unicode字母,一个数字或符号+和 -
我有一个特定的场景,我不希望字符串只包含+和 -
只有在有效字母或数字之前或之后才允许使用这些符号。
答案 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+个字母/数字[-+]?
- 一个可选的-
或+