我想要一条规则来匹配除空白之外的所有内容:
[^ \t\n\r\f\v] {}
但我想使用扩展:
BLANK [ \t\n\r\f\v]
%%
[^{BLANK}] {}
但扩张失败了。
我可以做[^[:space:]]
,但我想知道为什么扩展不起作用。
为什么呢?我该如何扩展它?
答案 0 :(得分:1)
因为您无法在字符类中展开名称。
请注意,在字符类内部,所有正则表达式 运营商失去了他们的特殊意义,除了逃避(
\
)和 字符类操作符,-
,]
,以及在开头的 class,^
。
(引自Flex manual section on Patterns,靠近底部。)
换句话说,名称扩展{name}
是正则表达式中的术语。这不是宏观扩张。
顺便说一下,在大多数情况下,名称的扩展都用括号括起来。 (你可以在example in the flex manual中看到。)