use*_*497 8 css php regex pcre
我试图像这样转换无效的CSS:
{color:red}
并使其有效如下:
.missing_selector{color:red}
CSS示例:
a {
color:black;
background-color:blue;
}
{color:red}
<!-- TEST -->
@media screen and (max-width:620px) {
/* TEST 2 */
a.test {color:blue;}
p[class="test2"] {color:green;}
}
Run Code Online (Sandbox Code Playgroud)
我目前的正则表达式:
/([^a-z0-9\)\];\-_]*\{)/i
现场测试:
你需要使用这个:
/(?<=\A|\})(\s*)\{/m
Run Code Online (Sandbox Code Playgroud)
用...来代替:
.missing-selector {
Run Code Online (Sandbox Code Playgroud)
在(?<=\A|\})确保具有唯一前(除空白,){是字符串或关闭的开始}.(感谢Casimir et Hippolyte指出那里的问题.)
这个
/([^a-z0-9\)\];\-_]*\{)/i
Run Code Online (Sandbox Code Playgroud)
不做你的想法.
( 启动一个捕获组[^a-z0-9\)\];\-_]需要比其它字符a-z,0-9,),],;,-,或_* 零次或多次\{ 要求 {) 结束捕获组但是它没有a ^,所以它不依赖于一行的开头,也不验证在它之前发生的任何事情{(它应该只是字符串的开头,空格或a }).因此,它会匹配)];-_示例CSS中您有一系列空格或其他非字母数字字符(不包括)的所有位置: