这些正则表达式有什么意义?

时间:2012-12-18 14:37:39

标签: regex

我正在尝试解决一个正则表达式拼图,并且部分正则表达式由以下部分组成:

([^Xa-ehY]|[^f-zW])

([^2]|[^D-Za]|[D-Ze-f])

这些让我很困惑。

拿第一个,例如:[^Xa-ehY]|[^f-zW])。这不是指“不是Xa-ehY还是不是f-zW”?这不等于“任何角色”吗?以e为例。它与第一个不匹配,但它与第二个匹配。 W与第二个匹配,但它与第一​​个匹配。

([^2]|[^D-Za]|[D-Ze-f])相同。这意味着“不是2或不是D-Ze-f或D-Ze-f”,对吧?这再次构成“任何角色”。

我错过了什么吗?这只是单个.正则表达式的错综复杂的替换吗?

3 个答案:

答案 0 :(得分:4)

我认为有些字符重叠。例如。在小写字母h中的第一个h不会匹配任何一方。

不可否认,第二个看起来只是“。”

答案 1 :(得分:1)

因为它是一个谜题,你应该仔细观察。

[^Xa-ehY]|[^f-zW].不同,因为它们在hf-z包含h)相交,因此它与{{1}相同}}

答案 2 :(得分:1)

你可以在正则表达式测试器中抛出一堆文本,看看是否有任何字符重叠。它很粗糙,但你的第一个例子(\[^Xa-ehY\]|\[^f-zW\])与字母'h'重叠。第二个例子看起来应该匹配任何东西。