检查特定模式的XML字符串时遇到一些麻烦。一切正常,但字符串中可以包含“ /”斜杠,这弄乱了我的正则表达式。该表达式可以正常工作,但斜杠除外。我试图转义斜线,但这不起作用。 该错误表明,该模式将不是有效的正则表达式。
感谢您的帮助。
<xs:simpleType name="idType">
<xs:restriction base="xs:string">
<xs:pattern value="[a-z\+A-Z\/0-9_-]*"/>
</xs:restriction>
</xs:simpleType>
答案 0 :(得分:3)
您不需要越过图案,使用
<xs:pattern value="[a-zA-Z0-9+/_-]*"/>
XSD regex模式是使用字符串而不是regex文字(在JavaScript / Ruby / PHP中通常是这种情况)指定的,没有regex分隔符。 /
不是特殊的正则表达式元字符,因此不应转义。
实际上,+
既不必在字符类中转义,连字符位于字符类的末尾时也不必转义。