2012-01-25 9 views
1

この質問は、正規表現(正規表現)の文字クラス減算に関連しています。私はXPath 2.0の第二版の正規表現の風味を参照しています。負のグループの正規表現文字クラス減算

文字クラスの減算内に負のグループがある場合、減算演算子( - )は前に発生しますか?または負のグループ演算子(^)の後に?

XPATH/XMLスキーマ仕様のテキストは次のとおりです。しかし、私の心には、それはあいまいに読まれます。任意・正の文字グループ・または・負の文字グループ・G、 いかなる・文字クラスの発現のため

・C、GCが有効・キャラクタ クラス減算ある・、Cのすべての文字のセットを識別する(G)は もC(C)にはありません。

  • [ABC- [ -

    1. [^ ABC-、[広告]]
    2. [[^広告]^ABC]:

  • は、次の3つの正規表現を検討し、具体的には

      :^広告]]

      は干し草の山のテキストと照合され

    • abcdef

    可能な一致テキストは何ですか?

    答えて

    2

    私は[^G]として、我々は[G-[C]]としてを読むのに十分な寛大されている場合は、テキストは、曖昧であることを考えると、陰性群、^Gません。今、キャレットは最初のグループの一部であり、両方のグループを否定しないことが明らかです。

    したがって、[^abc-[ad]]は一致し:

    {すべての文字をabcほか} \ {ad} =

    { abcdのほかのすべての文字}

    :)の動作を簡単にテストすることができます。
    .Netの正規表現でもこの機能がサポートされており、test onlineの方が少し簡単です。
    も参照してください。Character Class Subtraction

    +0

    ありがとうございました。オンラインテスターは特に有用です。 –