【发布时间】:2016-02-16 14:59:01
【问题描述】:
我为大家准备了一个正则表达式难题!
大约一周前,我决定更改我的 Sass 文件的格式:
a {
color: red;
text-decoration: none;
&:hover: {
color: blue;
text-decoration: underline;
}
}
div { ... }
到这里:
a {
color: red;
text-decoration: none;
&:hover: {
color: blue;
text-decoration: underline; } }
div { ... }
第二种语法看起来不错——它节省了行数并提高了可读性——但它实际上是编写代码的灾难。想象一下,如果我想在 a:hover 的文本装饰之后添加另一行:我必须带上这两个括号。
无论如何,我一直在尝试找到完美的正则表达式来更改格式,但无济于事。
我的想法:
- 匹配并捕获 2 个空格,因为所有右括号都至少缩进一级:
(\s{2}) - 匹配并捕获所有其他空格:
(\s*) - 匹配并捕获所有其他字符(我的 CSS 代码):
(.*) - 匹配空格+右括号:
}
将其替换为两行:
\1\2\3\n\2}
目前还不能完全正常工作。欣赏任何想法。
【问题讨论】:
-
强制性“CSS/SCSS 不是常规语言”喋喋不休。
-
不知道。我的 CS 教授会很生气。
-
为什么不用 SASS 而不是 SCSS?它支持所有相同的功能,但没有冗长的
{ }字符——在这方面它更像 Python,并且更接近你的新风格 -
已经想到了。调查它,但仍然会喜欢这个解决方案。
标签: css regex formatting sed sass