用Regex解析特定的CSS

本文关键字:CSS Regex | 更新日期: 2023-09-27 18:02:30

我正在努力想出正确的正则表达式来解决我的问题。我需要从这个Sass文件中解析变量及其值。变量总是以$开头,以:结尾,它们的值在:之后开始,以;结尾,很像CSS。

我正在使用。net的正则表达式解析器,并对这个有用的正则表达式工具进行测试:http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

我能够找到变量与这个匹配字符串

'$['w'd-]*:

然而,我如何才能找到匹配的值对,而不是从其他css中拾取误报,如"10px"

/*
Theme Name:   Huff
*/
// Particle Imports
@import "blueprint";
// Blueprint Variables
$blueprint_grid_margin: 10px;
// Site Specific Styles
$primary-color: #a1bfc2;
$link-color: #AFBDD2;
html {
  font-smooth: always;
}

body.bp {
  @include ui;
  overflow-x: hidden;
  background-color: $secondary-color;
}

用Regex解析特定的CSS

你想使用这样的组

'$(['w'd-]*):'s*(.*)?'s*;

然后匹配所有,组1有名称,组2有每个匹配的值。

尝试:

('$['w'd-]*):'s*([^;]+);

$1包含变量名,$2包含变量值。该值将包括任何引号,空格等,但不包括直接在":"后面修剪的空白。