如何通过正则表达式 select css 文件中的所有 class 符号

How to select via regex all class notations in css file

通过使用 css 规则的 css 文件,我只想 select css class (即).tblGenFixed 但不是规则的 css 值(即)opacity: 0.3 .

这是我的正则表达式: /(\.([\w_]+))/g

这是我的替代解决方案,但它不起作用 /(?!\{)(\.([\w_]+))(?!\})/g

我在这里用regex101设置了一个例子https://regex101.com/r/gG4nN4/1

如何忽略 css 规则值?

根据您的 CSS 的书写方式,您可以通过在句点之前要求空格来获得您要查找的内容:

 \W/(\.([\w_]+))/g

这里是a fork of your regex

根据您要查找的内容,您可能希望跳过其中一个捕获组:

\W\.([\w_]+)

我还警告不要在不手动检查结果的情况下使用正则表达式解析 CSS。

看到这个:Which characters are valid in CSS class names/selectors?

一个值在点后会有一个数字。幸运的是,有效的 CSS class 名称不能以数字开头:)

您的正则表达式必须首先匹配一个点,然后是一个字母或 - 或 _

! 如果您在点之前查找空格,则 .5 之类的值将匹配 ...

试试这个:(\.([a-zA-Z_-]{1}[\w-_]+))

编辑 :

也看到这个:Regex to match a CSS class name

-?[_a-zA-Z]+[_a-zA-Z0-9-]*

相关引用:

基本上,名称必须以下划线 (_)、连字符 (-) 或字母 (a–z) 开头,后跟任意数量的连字符、下划线、字母或数字。有一个问题:如果第一个字符是连字符,第二个字符必须是字母或下划线,名称必须至少有 2 个字符长。