原始 CSS 示例:
.sk-hybrid{}
.sk-hybrid header > .row,
.sk-hybrid > #content.row,
.sk-hybrid footer > .row{}
.sk-border-radius-sm{}
.sk-gradient-gray-sm{}
我想将 .sk-whatever{ 的所有实例 preg_replace 为 .sk-whatever-i{ 以及后跟空格的相同术语的所有实例,例如**.sk-whatever ** 到 **.sk-whatever-i **
基本上我想要实现的是,编写一些 PHP 代码来解析我的 CSS 文件,将“-i”添加到我的 .sk-someword 类的所有实例中。所以我可以将 !important 声明附加到规则集,但这很简单。
我只需要 regX 来添加“-i”。请注意 .sk-whatever 之间可能有特殊字符。
.sk-some-class-term(space)
或
.sk-some-class-term{
在谈到 regX 时,我真是个懒汉。我很确定其他人可以轻松编写此代码。我不能。请帮助? :(
我的示例 CSS 的结果应该是:
.sk-hybrid-i{}
.sk-hybrid-i header > .row,
.sk-hybrid-i > #content.row,
.sk-hybrid-i footer > .row{}
.sk-border-radius-sm-i{}
.sk-gradient-gray-sm-i{}
最佳答案
此正则表达式应该适合您的目的:
^(\.sk-\w+(?:[^\{\s,>]+))
解释
^
匹配字符串的开头(
开始捕获组\.sk-\w+
匹配.sk-
后跟字母或数字(?:
开始非捕获组[^\{\s,>]+
匹配任何非空白、非{
、非、
或非->
字符
)
结束非捕获组
)
结束捕获组
关于html - 匹配 CSS 规则的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999129/