我在 Sublime Text 中有一个包含约 4,000 行 CSS 的大文件。我想编写一个 RegEx 来搜索包含特定颜色代码(#48535B)的所有 CSS 规则的文件,这样我就可以将每个相应的 CSS 规则复制到另一个文件中,然后从原始文件中删除它们文件。什么是一个好的 RegEx 来完成这个?
例如,我的 CSS 规则格式如下:
a {
color:#000;
text-decoration:none
}
a:hover,a:focus {
color:#999;
text-decoration:underline
}
.model-selector-parallax .carousel-prev,
.model-selector-parallax .carousel-next,
.ddc-btn-primary,
.showroom-detail .hproduct .view-link,
.showroom-detail .callout .callout-button,
.pricing .ePrice .ddc-btn, .pricing .eprice-button,
.pricing .ddc-btn[data-eprice],
.mycars-favorites .hproduct .pricing .make-an-offer,
.locations-proximity {
outline:thin dotted #48535B !important;
outline:5px auto -webkit-focus-ring-color;
outline-offset:-2px
}
img {
vertical-align:middle
}
.img-responsive {
display:block;
max-width:100%;
height:auto
}
.img-rounded {
border-radius:0px
}`
我希望 RegEx 找到包含“#48535B”的整个规则,并突出显示从规则开头到结束的 }
括号。所以在这种情况下,它会找到并突出显示(包括所有逗号分隔的类,即使它们在不同的行上):
.model-selector-parallax .carousel-prev,
.model-selector-parallax .carousel-next,
.ddc-btn-primary,
.showroom-detail .hproduct .view-link,
.showroom-detail .callout .callout-button,
.pricing .ePrice .ddc-btn, .pricing .eprice-button,
.pricing .ddc-btn[data-eprice],
.mycars-favorites .hproduct .pricing .make-an-offer,
.locations-proximity {
outline:thin dotted #48535B !important;
outline:5px auto -webkit-focus-ring-color;
outline-offset:-2px
}
此时,我可以复制所有结果并将它们粘贴到一个单独的文件中。
另外,一个 RegEx 可以避免匹配特定的颜色代码。因此,例如,如果我们试图避免匹配 48535B
并且我们有:
.navbar-default {
-webkit-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px;
-moz-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px;
box-shadow:rgba(0,0,0,0.15) 0px 10px 10px;
border-top:solid #f2f2f2;
border-bottom:solid #48535B !important;
border-width:2px 0 1px
}
RegEx 将查找并突出显示:
.ddc-navbar-default {
-webkit-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px;
-moz-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px;
box-shadow:rgba(0,0,0,0.15) 0px 10px 10px;
border-top:solid #f2f2f2;
border-width:2px 0 1px
}
这意味着它会查找并突出显示除包含 48535B
的行之外的所有内容,包括不同行上的逗号分隔类。
任何帮助将不胜感激!
非常感谢!
最佳答案
我试过这个,它似乎有效:
[^{\n]+\{[^}]+#[0-9a-f]{6}[^}]+\}
不过,我不是正则表达式方面的专家。希望对你有用
对于逗号分隔的多行规则,这个似乎对我有用:
^[^{}]+\{[^}]+#[0-9a-f]{6}[^}]+\}
为避免匹配某些颜色代码
:
^[^{}]+\{[^}]+#(?!code)[0-9a-f]{6}[^}]+\}
例如,这将不匹配ffffff
:
^[^{}]+\{[^}]+#(?!ffffff)[0-9a-f]{6}[^}]+\}
关于css - RegEx 搜索所有包含颜色代码的 CSS 行 |崇高文本 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44764933/