负前瞻匹配意外模式

2024-09-27 18:19:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解为什么这种消极的前瞻模式有效,而它不应该有效

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;

…因为在“结构”和“联合”之间有一些字符。我尝试了同样的事情积极向前看,然后它不这样工作

谢谢


Tags: on模式structintshortunion消极char

热门问题