IP的XSD模式限制,不包括0.0.0.0

时间:2016-06-06 18:57:50

标签: regex xsd ip

我正在写一个IP类型的XSD。 我的正则表达式为0.0.0.0 - 255.255.255.255但到目前为止我没有成功排除0.0.0.0

我试过了?!0.0.0.0,但XSD不支持?!

1 个答案:

答案 0 :(得分:2)

  1. 作为当前正则表达式的一部分,您有一个子表达式(可能重复四次),接受范围0到255.我将此称为&re0;。制作一个类似的正则表达式,接受1到255;我将此引用为&re1;

  2. 构建一个正则表达式作为选择:

    • &re-1;\.&re-0;\.&re-0;\.&re-0;(如果第一个值非零,那么它不是0.0.0.0)
    • 0\.&re-1;\.&re-0;\.&re-0;(即使第一个值为零,第二个值为非零也会将整个表达式保存为0.0.0.0)
    • 0\.0\.&re-1;\.&re-0;(同上两个前导零......)
    • 0\.0\.0\.&re-1;(如果您有三个前导零,则最终值必须为非零)