クイックスタート
チュートリアル
ツールと言語
リファレンス
書籍レビュー
正規表現ツール
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 Schema
Xojo
XQuery と XPath
XRegExp
データベース
MySQL
Oracle
PostgreSQL
このサイトのその他の内容
はじめに
正規表現クイックスタート
正規表現チュートリアル
置換文字列チュートリアル
アプリケーションと言語
正規表現の例
正規表現リファレンス
置換文字列リファレンス
書籍レビュー
印刷可能なPDF
このサイトについて
RSSフィードとブログ
RegexBuddy—The best regex editor and tester for XML developers!

XML スキーマ 正規表現

W3C XML Schema 標準は、独自の正規表現フレーバーを定義しています。 これは、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.*を使用する必要があります。 2 つの.*は、改行が含まれていないと仮定して、一致を要素全体に拡張します。 改行を許可する場合は、[\s\S]*regex[\s\S]*のようなものを使用できます。短縮文字クラスとその否定バージョンを組み合わせると、あらゆるものと一致する文字クラスになります。

XML スキーマでは、一致モードを指定する方法はありません。ドットは改行と一致することはなく、パターンは常に大文字と小文字を区別して適用されます。literalを大文字と小文字を区別せずに適用する場合は、次のように書き直す必要があります。[lL][iI][tT][eE][rR][aA][lL].

XML 正規表現には、\xFFまたは\uFFFFのような、特定の(印刷できない)文字と一致するトークンはありません。 これらをリテラル文字として正規表現に追加する必要があります。 プレーンテキストエディタを使用してXMLファイルに正規表現を入力する場合は、&#xFFFF; XML構文を使用できます。 そうでない場合は、文字マップから文字を貼り付ける必要があります。

最短一致量指定子は使用できません。 パターンは対象文字列の先頭と末尾にアンカーされており、成功/失敗の結果のみが返されるため、最長一致と最短一致の量指定子の唯一の潜在的な違いはパフォーマンスです。 最長一致量指定子を最短一致量指定子に変更したり、その逆を行ったりしても、完全にアンカーされたパターンの致または失敗を行うことはできません。

XML Schema 正規表現は以下をサポートしています

XQuery and XPathで使用可能な正規表現関数は、異なる正規表現フレーバーを使用していることに注意してください。 このフレーバーは、ここで説明する XML Schema フレーバーのスーパーセットです。 XML Schema フレーバーにはない、多くの最新の正規表現フレーバーで使用可能な機能がいくつか追加されています。

XML 文字クラス

制限があるにもかかわらず、XML スキーマ正規表現には 2 つの便利な機能が導入されています。 特殊な短縮文字クラス\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 Schema | Xojo | XQuery と XPath | XRegExp |

| MySQL | Oracle | PostgreSQL |