验证 XSD 模式中的小数 3.4 ^[0-9]{1,3}(?:\.[0-9]{1,4})?$
Validating a decimal 3.4 in the XSD schema ^[0-9]{1,3}(?:\.[0-9]{1,4})?$
我需要安装一个 XSD 来验证十进制数 3.4。整篇最多3个字符,小数部分不是必须的,但如果有的话,最多需要4个字符。
正则表达式 ^[0-9]{1,3}(?:.[0-9]{1,4})?$ 在测试站点中有效,但是当我输入 XSD得到错误:"InvalidRegex: Pattern value '^[0-9]{1,3}(?:.[0-9]{1,4})?$' is not a valid regular expression. The reported error was: 'This expression is not supported in the current option setting.' at column '{2}'."
XSD 架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="st_decimal7-4">
<xs:restriction base="xs:decimal">
<xs:pattern value="^[0-9]{1,3}(?:\.[0-9]{1,4})?$"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="teste">
<xs:complexType>
<xs:sequence>
<xs:element name="valor" type="st_decimal7-4" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
那里不能有非捕获组和 start/end 标志。只需将带有模式的行更改为此即可:
<xs:pattern value="[0-9]{1,3}(\.[0-9]{1,4})?"/>
您正在使用 XSD 定义的正则表达式语法中不可用的几个结构。 (一些模式处理器,例如 Microsoft,众所周知会忽略此语法,而只使用他们内部使用的正则表达式库中的任何有效内容)。
不允许的结构包括 ^ 和 $(不需要,因为正则表达式是隐式锚定的)和“(?”
我需要安装一个 XSD 来验证十进制数 3.4。整篇最多3个字符,小数部分不是必须的,但如果有的话,最多需要4个字符。
正则表达式 ^[0-9]{1,3}(?:.[0-9]{1,4})?$ 在测试站点中有效,但是当我输入 XSD得到错误:"InvalidRegex: Pattern value '^[0-9]{1,3}(?:.[0-9]{1,4})?$' is not a valid regular expression. The reported error was: 'This expression is not supported in the current option setting.' at column '{2}'."
XSD 架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="st_decimal7-4">
<xs:restriction base="xs:decimal">
<xs:pattern value="^[0-9]{1,3}(?:\.[0-9]{1,4})?$"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="teste">
<xs:complexType>
<xs:sequence>
<xs:element name="valor" type="st_decimal7-4" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
那里不能有非捕获组和 start/end 标志。只需将带有模式的行更改为此即可:
<xs:pattern value="[0-9]{1,3}(\.[0-9]{1,4})?"/>
您正在使用 XSD 定义的正则表达式语法中不可用的几个结构。 (一些模式处理器,例如 Microsoft,众所周知会忽略此语法,而只使用他们内部使用的正则表达式库中的任何有效内容)。
不允许的结构包括 ^ 和 $(不需要,因为正则表达式是隐式锚定的)和“(?”