正規表示式工具 |
grep |
PowerGREP |
RegexBuddy |
RegexMagic |
一般應用程式 |
EditPad Lite |
EditPad Pro |
語言和函式庫 |
Boost |
Delphi |
GNU (Linux) |
Groovy |
Java |
JavaScript |
.NET |
PCRE (C/C++) |
PCRE2 (C/C++) |
Perl |
PHP |
POSIX |
PowerShell |
Python |
R |
Ruby |
std::regex |
Tcl |
VBScript |
Visual Basic 6 |
wxWidgets |
XML 架構 |
Xojo |
XQuery 和 XPath |
XRegExp |
資料庫 |
MySQL |
Oracle |
PostgreSQL |
本網站的更多內容 |
簡介 |
正規表示式快速入門 |
正規表示式教學 |
替換字串教學 |
應用程式和語言 |
正規表示式範例 |
正規表示式參考 |
替換字串參考 |
書籍評論 |
可列印 PDF |
關於本網站 |
RSS Feed 和部落格 |
W3C XML 架構標準定義了其自己的正規表示式風格。您可以在 XML 架構中簡單類型定義的 pattern 面向中使用它。例如,下列使用正規表示式定義簡單類型「SSN」,要求元素包含有效的美國社會安全號碼。
<xsd:simpleType name="SSN">
<xsd:restriction base="xsd:token">
<xsd:pattern value="[0-9]{3}-[0-9]{2}-[0-9]{4}"/>
</xsd:restriction>
</xsd:simpleType>
與其他正規表示式風格相比,XML 架構風格的功能相當有限。由於它僅用於驗證整個元素是否符合模式,而不是從大量資料區塊中擷取比對結果,因此您不會真正錯過其他風格中常見的功能。這些限制允許架構驗證程式使用有效率的 文字導向引擎 來實作。
特別值得注意的是完全沒有錨定,例如 插入符號和美元符號、字詞邊界 和 環顧。XML 架構總是隱含地錨定整個正規表示式。正規表示式必須與整個元素相符,該元素才會被視為有效。如果您有模式 regexp,XML 架構驗證程式會以 Perl、Java 或 .NET 使用模式 ^regexp$ 的方式來套用它。如果您想要接受在內容中間某處有 regex 的所有元素,您需要使用正規表示式 .*regex.*。兩個 .* 擴充比對範圍以涵蓋整個元素,假設它不包含換行符號。如果您想要允許換行符號,您可以使用類似 [\s\S]*regex[\s\S]* 的內容。將 簡寫字元類別 與其否定版本結合,會產生一個與任何內容相符的字元類別。
XML 架構未提供指定比對模式的方法。點 永遠不會比對換行符號,而且模式永遠以大小寫敏感的方式套用。如果您想要以大小寫不敏感的方式套用 文字,您需要將其改寫為 [lL][iI][tT][eE][rR][aA][lL]。
XML 正規表示式沒有類似 \xFF 或 \uFFFF 的代碼來比對特定(無法列印)字元。您必須將它們新增為文字字元到您的正規表示式中。如果您使用純文字編輯器將正規表示式輸入 XML 檔案,則可以使用  XML 語法。否則,您需要從字元對應表貼上字元。
惰性量詞 不可使用。由於模式固定在主旨字串的開頭和結尾,而且只會傳回成功/失敗結果,因此貪婪量詞和惰性量詞之間唯一潛在的差異將會是效能。您永遠無法透過將貪婪量詞變更為惰性量詞或反之,讓完全固定的模式比對或失敗。
XML 架構正規表示式支援下列項目
請注意,XQuery 和 XPath 中可用的正規表示式函數使用不同的正規表示式風格。此風格是此處所述 XML 架構風格的超集。它新增許多現代正規表示式風格中可用的功能,但 XML 架構風格中沒有。
儘管有其限制,XML 架構正規表示式引入了兩個便利的功能。特殊速記字元類別 \i 和 \c 使得比對 XML 名稱變得容易。沒有其他正規表示式風格支援這些功能。
字元類別減法可以輕鬆比對位於特定清單中,但不在另一個清單中的字元。例如:[a-z-[aeiou]] 比對英文輔音。此功能現在也在 JGsoft 和 .NET 正規表示式引擎中提供。在使用 Unicode 屬性 時,這項功能特別方便。例如:[\p{L}-[\p{IsBasicLatin}]] 比對任何非英文字母的字母。
| 快速開始 | 教學 | 工具與語言 | 範例 | 參考 | 書籍評論 |
| grep | PowerGREP | RegexBuddy | RegexMagic |
| EditPad Lite | EditPad Pro |
| Boost | Delphi | GNU (Linux) | Groovy | Java | JavaScript | .NET | PCRE (C/C++) | PCRE2 (C/C++) | Perl | PHP | POSIX | PowerShell | Python | R | Ruby | std::regex | Tcl | VBScript | Visual Basic 6 | wxWidgets | XML 架構 | Xojo | XQuery 與 XPath | XRegExp |
| MySQL | Oracle | PostgreSQL |
頁面網址:https://regular-expressions.dev.org.tw/xml.html
頁面最後更新:2021 年 8 月 24 日
網站最後更新:2024 年 3 月 15 日
版權所有 © 2003-2024 Jan Goyvaerts。保留所有權利。