【问题标题】:REGEX to select CSS Classes names from file正则表达式从文件中选择 CSS 类名称
【发布时间】:2019-11-14 16:29:41
【问题描述】:

我需要选择 css 文件中的所有类名,我只是新手,如果有人可以建议一些好的正则表达式在线教程,我将不胜感激。

正则表达式将在 JavaScript 中使用

我带来了适用于简单类的这个: /(?<=\.).+?(?=\{)/g

.className { 
}

上面的正则表达式返回这个:className

现在我也需要为此添加:

tagName1 {
}

#tagName2 {
}

.tagName3:hover {
}

.tagName4:anything {
}
should result in:
tagname1
tagname2
tagname3
tagname4

那么如何选择上面的呢?

【问题讨论】:

  • 你有什么应该匹配的例子吗?因为根据您提供的唯一信息,这将起作用:(?<=\.|^|#)\w+(?=\s?{)。您还应该edit您的问题并附上您使用的语言。
  • 我不明白最后两个例子。 className 不是类名,而是标签名。 #className 是一个 ID,而不是类名。更复杂的 CSS 选择器呢,比如 .classname:hover
  • @Barmar,很好,是的,我还需要选择标签名称,并删除 :hover 部分或 :(something) 部分

标签: javascript regex regex-lookarounds regex-negation regex-group


【解决方案1】:

我的猜测是,我们希望设计一个类似于,

([^:#\s.]+)(?:.*?)?\s*({[^}]*?})

在这个捕获组中的什么位置,

([^:#\s.]+)

我们会取消选择一些字符,例如.# 和空格,然后我们会收集我们想要的数据。

Demo

【讨论】:

  • 太好了,另外,要标记为正确答案,我只是忘了要求添加这个:如果类是: .className:hover 您需要删除 :hover 部分或任何 :something部分
  • 看起来不错,也可以多加一个来选择课程的内容吗? { xxxx } 以及类名和 { ?这是我最后的要求哈哈
【解决方案2】:

我会使用:

 ^[.#]?(\w+)(?=(?::\w+)?\s*{)

想要的名字在 #1 组中

Demo 带有 javascript 正则表达式风格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 2011-08-22
    • 2014-07-14
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2018-10-20
    相关资源
    最近更新 更多