html - 匹配 CSS 规则的正则表达式

标签 html css regex expression preg-match

原始 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,>]+))

RegEx Demo

解释

  • ^ 匹配字符串的开头
  • ( 开始捕获组
    • \.sk-\w+ 匹配 .sk- 后跟字母或数字
    • (?: 开始非捕获组
      • [^\{\s,>]+ 匹配任何非空白、非{、非或非-> 字符
    • )结束非捕获组
  • ) 结束捕获组

关于html - 匹配 CSS 规则的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999129/

相关文章:

css - 如何使输入值属性的内容居中

javascript - 为什么这个正则表达式在 javascript 中评估为 false?

php - 正则表达式:找到不包含任何单词的部分

python - 如何将值从 html 传递到 python

javascript - 每秒更新一次 document.title

css - 如何首先删除引导移动设备(首先使用桌面)

android - 没有符号编辑框的货币输入

html - Z-Index 在 IE 中不起作用(相对定位)

javascript - 如何在jquery中添加这个元素

css - 在 Gtk3 中使用 CSS 的 GtkTreeView