代码之家  ›  专栏  ›  技术社区  ›  Dex

用regex将CSS分解成块

  •  0
  • Dex  · 技术社区  · 15 年前

    我有一个样式表:

    a,b,c { stuff
            lots of it
    }
    
    b { more stuff }
    
    .test { even more }
    

    我想要一个正则表达式把它分成三部分,从'}'到'}'的分隔应该可以满足我的需要(除了第一种情况)。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Tim Pietzcker    15 年前

    在Ruby1.9中,您可以

    result = subject.split(/(?<=\})/)
    

    i、 例如,在一根绳子后面的位置分开绳子 } . 不过,ruby1.8不支持lookbehind断言,因此在那里不起作用。当然,使用嵌套大括号会遇到问题,但您说过这不应该是数据的问题。

    result = subject.split(/(\})/)
    

    尽管现在右大括号不再是匹配元素的一部分。所以呢 test {a} test2 {b} 将被分成 test {a } , test2 {b }

        2
  •  0
  •   Daniel O'Hara    15 年前

    这在您的情况下可能不合适,但是您可以使用CSS解析器将您的CSS文件按标记拆分,并对它们进行独立且无害的操作。

    1. css_parser (与 this guide );
    2. CSSPool
        3
  •  0
  •   Nakilon earlonrails    14 年前
    .scan(/.+?\}/m)