2012-01-25 37 views
1

此問題與正則表達式(正則表達式)中的字符類相減有關。我指的是XPATH 2.0第二版的正則表達式。帶有負數組的正則表達式字符類減法

當字符類減法中存在負數組時,減法運算符( - )是否出現在?或者在否定組運算符(^)之後?

XPATH/XML模式規範的文本如下。但在我看來,它含糊不清。

對於任何·正字符組·或·負字符組·G, 和任何·字符類表達·C,GC是有效的·字符 類減法·,識別所述一組中的C中的所有字符的(G) 也不在C(C)中。

更具體地講,考慮以下三個正則表達式:

  1. [^ ABC- [廣告]
  2. [^ ABC - [^廣告]
  3. [ABC- [

      :^廣告]

反對的草垛文本相匹配

  • abcdef
  • 什麼是可能的匹配文本(第一個和後續)?

    回答

    2

    我不認爲文字是模糊的,如果我們有足夠的寬鬆閱讀爲[G-[C]],並且負組,^G,爲[^G]。現在,看起來很清楚,插入符號是第一組的一部分,並且不會否定兩個組。

    因此,[^abc-[ad]]將匹配:

    {所有字符除了abc} \ {ad} = {所有字符除了abcd}

    請記住,您可以輕鬆測試以查看:)的行爲。
    作爲獎勵,.Net正則表達式也支持此功能,使其更容易test online
    另請參閱:Character Class Subtraction

    +0

    謝謝。在線測試儀特別有用。 –