簡體   English   中英

如何在 XSD 中編寫正則表達式

[英]How to write regex in XSD

我正在編寫 XSD 模式限制,並且我有以下有效字符串

  • ^用戶
  • ^用戶名
  • {$用戶名}
  • {$user1.name}

以下無效

  • 用戶
  • 用戶
  • 用戶
  • {用戶名}
  • {用戶名}

規則是以 ^ 或 { 開頭的字符串。 如果我們以 { 開頭,那么下一個字符應該是 $ 並且單詞應該以 } 結尾。 不允許大寫或@ 符號。

我已經嘗試過這個<xs:pattern value="[\\^\\{].*\\w+\\}?"/>這個工作部分但不滿足所有條件

任何幫助表示贊賞。

您可以使用

<xs:attribute name="label">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="\^[a-z]+(\.[a-z]+)?|\{\$[a-z]+(\.[a-z]+)?}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>

XSD 正則表達式始終是錨定的,因此上述正則表達式中的兩個選項必須匹配整個字符串。

他們匹配

  • \\^[az]+(\\.[az]+)? - ^ char,然后是 1+ 個小寫 ASCII 字母,然后是一個可選的. 和 1+ 個小寫 ASCII 字母
  • | - 或者
  • \\{\\$ - {$子串
  • [az]+(\\.[az]+)? - 1+ 個小寫 ASCII 字母,然后是一個可選的. 和 1+ 個小寫 ASCII 字母
  • } - 一個}字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM