Regex 带空格的lex扩展失败
我想要一个规则来匹配除空格外的所有内容:Regex 带空格的lex扩展失败,regex,flex-lexer,lex,Regex,Flex Lexer,Lex,我想要一个规则来匹配除空格外的所有内容: [^ \t\n\r\f\v] {} 但我想用一个扩展: BLANK [ \t\n\r\f\v] %% [^{BLANK}] {} 但扩张失败了 我可以做[^[:space:],但我想知道为什么扩展不起作用 为什么??我如何展开它?因为不能在字符类内展开名称 请注意,在字符类中,所有正则表达式 除了转义(\)和 字符类运算符,-,],以及,在 类,^ (引用自底部附近的。) 换句话说,名称扩展{name}是正则表达式中的一个术语。这不是宏观扩张 顺便说
[^ \t\n\r\f\v] {}
但我想用一个扩展:
BLANK [ \t\n\r\f\v]
%%
[^{BLANK}] {}
但扩张失败了
我可以做[^[:space:]
,但我想知道为什么扩展不起作用
为什么??我如何展开它?因为不能在字符类内展开名称 请注意,在字符类中,所有正则表达式 除了转义(
\
)和
字符类运算符,-
,]
,以及,在
类,^
(引用自底部附近的。)
换句话说,名称扩展{name}
是正则表达式中的一个术语。这不是宏观扩张
顺便说一句,在大多数情况下,名称的展开部分用括号括起来。(您可以在中看到。)\S在lex regex中不起作用(如\d,\w,…),好的,我可以做
[^[:space:]
,但我想知道为什么扩展不起作用啊,好的。我读过,虽然我认为名称扩展是一个lex特性,充当宏扩展。但它是一个正则表达式功能,因此被视为一个操作符。谢谢