1

我的 css 中有以下两个选择器,以这种格式布局:

// file1.css
#myId {
    margin-right:0;
    color:#f00;
}

// file2.css
#otherId { margin-right:0; color: #f00 }

我的目标是使用 ack/grep 搜索来获取选择器和颜色值。

如果我:

ack-grep '(^.*color:\s+\d+)'

我去拿:

file1.css
color:#f00;

file2.css
#otherId { margin-right:0; color: #f00 }

此搜索对 运行良好file2.css,但对 运行不太好file1.css,可能是因为我使用^匹配到行首.. 我将如何始终匹配回某些 css 选择器的开头(以 id 或类或标记名开头)?

更明显的是,我想要:

file1.css
#myId {margin-right:0; color:#f00;

file2.css
#otherId { margin-right:0; color: #f00 }

(并且选择器不一定必须是 ID .. 我应该匹配回}文件的前一个还是开头?

4

1 回答 1

2

grep 和 ack 都不支持多行正则表达式:

确认常见问题

还有其他选择,例如 pcregrep。不过我会使用一些 CSS 解析器。

于 2012-04-16T20:37:18.560 回答