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中您有一系列空格或其他非字母数字字符(不包括)的所有位置: