DevToys Web Pro iconDevToys Web Pro部落格
為我們評分:
試用瀏覽器擴充功能:

XSD 正則表達式模式測試器

XSD 模式

XSD patterns match the entire string by default (implicit ^ and $). Using xspattern for accurate XSD regex matching.

轉換後的模式

近似的 JavaScript 正規表示式等價形式(僅供顯示)。實際比對使用 xspattern 程式庫以提供精確的 XSD 正規表示式支援。
^[A-Z]{2}[0-9]{3}$

測試字串

  • 結果

    完全符合
    整個字串符合此模式
    符合的文字:
    AB123

    XSD 正規表示式語法參考

    字元類別

    .Any character
    [abc]Match a, b, or c
    [^abc]Match anything except a, b, c
    [a-z]Character range (a to z)
    \dDigit (0-9)
    \DNon-digit
    \sWhitespace
    \SNon-whitespace
    \p{L}Unicode letter category(\p{L} (with 'u' flag))
    \p{N}Unicode number category(\p{N} (with 'u' flag))
    \iXML initial name character (XSD only, supported by xspattern)
    \cXML name character (XSD only, supported by xspattern)
    [a-z-[aeiou]]Character class subtraction (XSD only, supported by xspattern)

    量詞

    a*0 or more
    a+1 or more
    a?0 or 1 (optional)
    a{n}Exactly n times
    a{n,}n or more times
    a{n,m}Between n and m times
    a*?0 or more (non-greedy)
    a+?1 or more (non-greedy)

    群組

    (abc)Capturing group
    (?:abc)Non-capturing group
    a|bMatch a or b

    跳脫字元

    \tTab
    \nNewline
    \rCarriage return
    \xhhHex character
    \uhhhhUnicode character

    與 JavaScript 的重要差異

    No anchorsXSD patterns match entire string by default (implicit ^ and $). xspattern handles this correctly.
    No lookahead/lookbehindXSD does not support (?=...), (?!...), (?<=...), (?<!...)
    Unicode categoriesXSD supports \p{L}, \p{N}, etc. xspattern supports Unicode 15.0.
    XML name charsXSD has \i and \c for XML name characters. xspattern supports these.
    Character class subtractionXSD supports [a-z-[aeiou]] syntax. xspattern fully supports this feature.
    技術細節

    XSD 正則表達式模式測試器的運作方式

    工具功能說明

    XSD 正則表達式模式測試器可讓你將 XML Schema Definition(XSD)的正則表達式模式,對照範例文字進行測試。XSD 正則表達式模式與 JavaScript 正則表達式在幾個重要方面不同:預設會匹配整個字串(隱含 ^ 與 $ 錨點)、不支援前瞻/後顧(lookahead/lookbehind)斷言,且具有用於 XML 驗證的特定語法規則。此工具會將 XSD 模式轉換為與 JavaScript 相容的正則表達式以便測試,同時說明其中差異。對於需要測試 XSD 檔案中所定義的模式限制、並從事 XML 結構描述、XSD 驗證與 XML 資料處理的開發者而言,這個工具非常實用。

    常見的開發者使用情境

    當開發者處理包含正則限制的 XML Schema 定義時,會使用 XSD 模式測試器。XSD 模式常用於驗證 XML 元素內容,例如電子郵件地址、日期、ID 或自訂格式。在定義 XSD 結構描述時,開發者需要測試其模式限制,以確保能正確驗證預期輸入並拒絕無效資料。此工具可協助驗證像 [A-Z][0-9] 這樣的模式是否能正確匹配如「AB123」的格式,同時拒絕「ab123」或「ABC123」。XSD 模式測試器對於 XML 結構描述開發、資料驗證,以及確保符合 XML 標準而言不可或缺。

    與 JavaScript 正則表達式的主要差異

    XSD 正則表達式模式與 JavaScript 正則表達式有幾個重要差異。首先,XSD 模式預設會匹配整個字串,因此不需要加入 ^$ 錨點。模式 [A-Z] 會自動只匹配「剛好是兩個大寫字母」的字串。其次,XSD 不支援前瞻((?=...))或後顧((?&lt;=...))斷言。第三,XSD 支援 Unicode 類別,例如用於字母的 \p{L} 與用於數字的 \p{N},在 JavaScript 中需要 Unicode 旗標才能使用。XSD 也有像 \i\c 這類用於 XML 名稱字元的特殊序列,JavaScript 正則表達式中並不存在。

    XSD 模式範例

    常見的 XSD 模式包含日期格式(例如用於 YYYY-MM-DD 的 \d{4}-\d{2}-\d{2})、識別碼模式(例如兩個字母後接三個數字的 [A-Z][0-9]),以及 Unicode 模式(例如一個或多個 Unicode 字母的 \p{L}+)。此工具會顯示這些模式如何轉換為 JavaScript 正則表達式,以及測試字串是否匹配整個模式(完整匹配)或僅部分匹配(部分匹配)。由於 XSD 模式必須匹配整個字串,部分匹配表示該模式無法完整驗證輸入。

    最佳實務

    測試 XSD 模式時,請記得它們驗證的是整個字串,而不是子字串。像 \d+ 這樣的模式只會匹配「完全由數字組成」的字串,而不會匹配「包含數字」的字串。請適當使用字元類別與量詞:[A-Za-z]+ 匹配一個或多個字母,而 [A-Za-z]* 匹配零個或多個字母。進行 XML 驗證時,請同時測試有效與無效輸入,以確保你的模式能正確接受預期資料並拒絕格式不正確的輸入。此工具會顯示轉換後的 JavaScript 正則表達式模式,讓你能看見 XSD 模式為測試目的如何被翻譯。