如何匹配前面没有分号的结束CSS大括号}
?请参阅以下案例中的示例:
这应匹配:
.style { margin: 0px; width: 10px }
.style {
margin: 0px;
width: 10px
}
但不是这个:
.style { margin: 0px; width: 10px; }
.style { margin: 0px; width: 10px;}
.style {
margin: 0px;
width: 10px;
}
我正在尝试使用此功能,但看起来使用否定匹配存在一些问题:
string.match(/[^;](!?\s+)?(})/mg)
答案 0 :(得分:1)
假设JavaScript。这会添加缺少的分号:
s.replace(/([^{};\s])(\s*})/g, "$1;$2")
我在第一个字符类中包含{}
,因为可能存在空规则:
.foo {}
该模式捕获大括号前的最后一个非空白字符,因为JavaScript不支持后视。由于我已经捕获了角色,我也抓住了右大括号,而不是使用前瞻。