从包含特定搜索词的CSS样式表中捕获所有类和ID

时间:2015-06-24 11:40:34

标签: css regex

我正在使用一个拥有25.000+行styles.css的WordPress高级主题。我想在全站点更改字体和主要颜色,为此我想要抓住所有使用它们的类和ID用于我的孩子主题。

手动搜索25.000行,然后选择并复制这些类是一个非常慢的过程,我相信这可以通过RegEx和preg匹配所有事情等自动化,但我知道创建这样的东西太少了一个剧本。

但至少我可以弄清楚这个任务的脚本需要遵循的逻辑。

因此,假设我需要一个规则来收集Roboto所分配的所有类和ID。

基本上它需要 1.然后找到Roboto 2.回到{和 3.收集所有内容{直到 4.之前的},所以它需要向后搜索 5.这需要完成整个文档,以捕获Roboto所分配的所有类。

结果将是一个非常大的逗号分隔类列表,然后我可以轻松地将新字体分配给。

是否有任何RegEx专家看到他眼前的字符串?我确信那些能够流利地“说话”RegEx的人并不困难,但我很快就失去了尝试自己学习它,我只是成功地进行了简单的替换。

...
last CSS rule ending here.
}

.some,
.classes,
.and,
#IDs to collect them all,
#not only from this one css rule,
. but from a whole 25.000+lines stylesheet

{
  font-family: 'Roboto', sans-serif;
  font-size: 32px;
  color: ... 
  etc.
}
...

1 个答案:

答案 0 :(得分:1)

目前无法使用 CSS JavaScript 定位具有特定 CSS规则的所有类,例如font-family,或 jQuery

但是,你可以搜索:

  

'以......开始。

div[class^="something"] { } /* target divs */
*[class^="something"] { } /* targets everything */

div[id^="something"] { } /* target divs */
*[id^="something"] { } /* targets everything */

可以使用这样的东西: -

<div class="something-else-class"></div>
  

&#39;包含..&#39;

div[class*="something"] { }

可以使用

<div class="is-something-here"></div> 
<!-- class name can be anything. "something" can be anywhere -->
  

&#39;结束于......&#39;

div[class$="something"] { }

可以使用

<div class="you-are-something"></div>

通过这种方式,您可以定位所有具有font-family 规则的类和/或ID,并对其进行更改。

<强>参考