我正在尝试修复多年前其他人写过的xsd文件中的错误。问题是xml没有验证xsd。
错误消息返回以下内容:
“值'0:0 | - ?\ d {0,3}。* [0-9] +: - ?\ d {0,3}。* [0-9] +'的方面'pattern'不是有效的正则表达式。“
“WXS架构fileName.xsd无法编译”
(我正在使用xmllint进行验证)
我对正则表达式不满意,所以有人能解释一下这是做什么的吗?
0\:0|\-?\d{0,3}\.*[0-9]+\:\-?\d{0,3}\.*[0-9]+
如果我在每列'\'
之前删除':'
(反斜杠),那么它看起来像这样:
0:0|\-?\d{0,3}\.*[0-9]+:\-?\d{0,3}\.*[0-9]+
然后错误消失,架构编译并且xml验证。但是这些变化是什么?正则表达式是否仍然保留了它原有的预期功能?
答案 0 :(得分:1)
两个正则表达式都是相同的,冒号字符不需要反斜杠。
这是一个直观的解释:
这是:
或