XSD 模式中以分号分隔的双精度值列表问题
Issue in XSD pattern for semicolon separated list of double values
我有以下 XSD 模式来实现以分号分隔的双精度值列表
<xs:pattern value="([-+]?(\d+)?(.\d+)?(([eE][-+]?)?\d+)?|(NaN))(;(([-+]?(\d+)?(.\d+)?(([eE][-+]?)?\d+)?)|(NaN)))*"/>
这适用于此 data2type 网站的双精度值:
<test>123.456;+123.456;-1.234e56;-.45E-6;NaN</test>
但是为什么用任何其他字符替换点对这种模式有效?
<test>123f456;+123.456;-1.234e56;-.45E-6;NaN</test>
如何更改模式以使第二个示例无效?
也非常欢迎改进模式的建议! :)
谢谢!
您可能会发现这很有用:https://www.regular-expressions.info/xml.html
此外,我怀疑您的问题与 XSD 正则表达式语言无关,因此任何免费的在线正则表达式测试器都可以帮助您找到此类问题。
在正则表达式中,一个点代表任意字符的一次出现。如果你想指定一个 literal 点 .
(小数点)那么你需要用反斜杠转义它 \.
.
我有以下 XSD 模式来实现以分号分隔的双精度值列表
<xs:pattern value="([-+]?(\d+)?(.\d+)?(([eE][-+]?)?\d+)?|(NaN))(;(([-+]?(\d+)?(.\d+)?(([eE][-+]?)?\d+)?)|(NaN)))*"/>
这适用于此 data2type 网站的双精度值:
<test>123.456;+123.456;-1.234e56;-.45E-6;NaN</test>
但是为什么用任何其他字符替换点对这种模式有效?
<test>123f456;+123.456;-1.234e56;-.45E-6;NaN</test>
如何更改模式以使第二个示例无效?
也非常欢迎改进模式的建议! :)
谢谢!
您可能会发现这很有用:https://www.regular-expressions.info/xml.html 此外,我怀疑您的问题与 XSD 正则表达式语言无关,因此任何免费的在线正则表达式测试器都可以帮助您找到此类问题。
在正则表达式中,一个点代表任意字符的一次出现。如果你想指定一个 literal 点 .
(小数点)那么你需要用反斜杠转义它 \.
.