使用正则表达式从css文件(作为文本)获取所有类

时间:2016-04-17 02:57:24

标签: javascript regex

我正在研究一个将从css文件返回所有可用类的正则表达式。到目前为止我有这个:

/\.[\w-_]+[^\.\s\{#:\,;]/g

这很好但它也捕获了一些css规则。例如:

.sky-form .button {
    background-color: #2da5da;
    opacity: 0.8;
    transition: opacity 0.2s;
    -o-transition: opacity 0.2s;
    -ms-transition: opacity 0.2s;
    -moz-transition: opacity 0.2s;
    -webkit-transition: opacity 0.2s;
}

它将返回“.sky-form”“.button”和“.2s”。如何防止正则表达式从大括号之间返回任何内容?

编辑 - 最终答案

/(?:[\.]{1})([a-zA-Z_]+[\w-_]*)(?:[\s\.\{\>#\:]{1})/igm

最后一部分(?:[\ s。{>#:] {1})是为了确保它不捕获任何图像链接,如.png或jquery.11.1.custom /

2 个答案:

答案 0 :(得分:0)

你需要告诉它在初始阶段之后不允许数字作为第一个字符。

\.[a-zA-Z_][\w-_]*[^\.\s\{#:\,;]

上面的正则表达式允许以大写和小写的a-z或下划线开头的类名。

答案 1 :(得分:0)

/(\.[\w-_]+\s)/gmi

我认为应该做的伎俩。 https://regex101.com/r/zE8mM6/1