使用regex从css文件中获取所有类(以文本形式)

get all classes from css file (as text) using regex

本文关键字:文本 regex css 文件 获取 使用      更新时间:2023-09-26

我正在开发一个正则表达式,它将从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"answers".2s"。如何防止regex从花括号之间返回任何内容?

编辑-最终答案

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

最后一部分(?:[''s.{>#:]{1})是确保它没有捕获任何图像链接,如.png或路径的一部分,如jquery.11.1.custom/

您需要告诉它不允许在初始句点后使用数字作为第一个字符。

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

上面的regex允许类名以大写和小写的a-z或下划线开头。

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

我认为应该成功。https://regex101.com/r/zE8mM6/1