否定前瞻符合意外模式

时间:2017-12-14 11:24:52

标签: python regex

我无法理解为什么这种负面的前瞻模式有效,何时不应该。

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”之间有一些字符。我用积极的前瞻尝试了同样的事情然后它不像这样工作。

由于

0 个答案:

没有答案