我无法理解为什么这种负面的前瞻模式有效,何时不应该。
struct(((?!union).)*)Blooo;
测试
struct
{
union
{
unsigned short int WOOF;
struct
{
unsigned char ON :1;
unsigned char OFF :1;
unsigned char NT0 :6;
unsigned char NT1 :8;
} MIM;
} U1;
union
{
unsigned short int WOOF;
struct
{
unsigned char DA :1;
unsigned char NT0 :7;
unsigned char NT1 :8;
} MIM;
} U2;
} Blooo;
它只匹配第二个联盟(这是我需要的)但我想知道它为什么这样做。在我的脑海中,它应该像这样写成工作..
struct(.*((?!union).)*)Blooo;
..因为“struct”和“union”之间有一些字符。我用积极的前瞻尝试了同样的事情然后它不像这样工作。
由于