这个问题与正则表达式(正则表达式)中的字符类减法有关。我指的是XPATH 2.0第二版的正则表达式。
当字符类减法中有负组时,减法运算符( - )是否在之前出现?或者在负组运算符之后(^)?
XPATH / XML架构规范的文本如下。但在我看来,它含糊不清。
对于任何正面角色组·或·负面角色组·G, 和任何·字符类表达式·C,G-C是有效的字符 class subtraction·,识别C(G)中所有字符的集合 也不在C(C)中。
更具体地说,请考虑以下三个正则表达式:
与干草堆文本匹配:
哪些可能的匹配文本(第一个和后续的)?
答案 0 :(得分:2)
如果我们足够宽松地将G-C
视为[G-[C]]
,将负视群^G
视为[^G]
,我认为该文字不明确。现在,看起来很清楚,插入符号是第一组的一部分,并不会否定这两个组。
因此,[^abc-[ad]]
会匹配:
{除
a
以外的所有字符,b
和c
} \ {a
和d
} = {所有字符除{{ 1}},a
,b
和c
}
请注意,您可以轻松测试以查看行为d
作为奖励,.Net正则表达式也支持此功能,使test online更容易
另见:Character Class Subtraction