XSD 模式中“[A-Z]{4}\d{2}-\d{4}”的含义

Meaning of "[A-Z]{4}\d{2}-\d{4}" in an XSD pattern

谁能用一个有效数据参数的例子来解释一下这个模式的含义。

<xsd:simpleType>
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[A-Z]{4}\d{2}-\d{4}"/>
  </xsd:restriction>
</xsd:simpleType>

示例如下:

有效

FOOB45-9876
BAZZ36-1726

无效

foob47-8372 // may not contain lowercase letters
FOO36-8373  // only 3 starting characters
FOOB29_8473 // underscore instead of hyphen
FOOBa3-8272 // must contain two numbers before the hyphen

等等。

正如@Petru Gardea 评论的那样,XSD 的正则表达式风格隐式锚定了 ^ 和 $,这意味着 FFOOB45-9876FOOB45-98767 都是无效的,而所有其他正则表达式引擎(我们知道)实际上会匹配它们。