Css 用于在Atom编辑器中替换整个代码库中的类名的正则表达式

Css 用于在Atom编辑器中替换整个代码库中的类名的正则表达式,css,regex,atom-editor,class-names,Css,Regex,Atom Editor,Class Names,这几天我一直在努力解决这个问题。如果这是重复的,我很抱歉,在搜索这个特定问题时,我无法找到我需要的内容 我有如下类名: class=“block underline primary” className=“文本中心块主暗” class=“灰色bg黑色内联块” 我想使用Atom的正则表达式搜索功能搜索整个代码库,并用新的类名替换每个实例。我需要以下规则: 确保字符串包含在class=”“或className=”“ 确保它只匹配准确的单词,因此在上面的示例中,它只匹配块,而不匹配内联块,如果我正在搜

这几天我一直在努力解决这个问题。如果这是重复的,我很抱歉,在搜索这个特定问题时,我无法找到我需要的内容

我有如下类名:

class=“block underline primary”

className=“文本中心块主暗”

class=“灰色bg黑色内联块”

我想使用Atom的正则表达式搜索功能搜索整个代码库,并用新的类名替换每个实例。我需要以下规则:

  • 确保字符串包含在
    class=”“
    className=”“
  • 确保它只匹配准确的单词,因此在上面的示例中,它只匹配
    ,而不匹配
    内联块
    ,如果我正在搜索的话
  • 我现在有这个,它几乎满足了我的需要,但不考虑
    className
    class
    并且会返回我不想要的段落或类中不包含的内容:

    (\s(块)\s)|(=“(块)\s)|(\s(块)”)

    有没有办法一下子找到并替换正则表达式?我知道我可能不会得到所有东西,因为类可以通过编程方式添加,但我希望通过查找和替换尽可能多地获得,而不要把其他事情搞砸。非常感谢任何帮助或指导

    编辑

    我还需要说明类名,如下所示:

    class=“块标题块已禁用”


    因此,最后我只想针对
    ,其他什么都不想。

    您可以使用以下表达式:

    (className|class)="(?:block|block\s([^"]*)|([^"]*)\sblock|([^"]*)\sblock(?=\s)([^"]*))"
    

    从那里,如果要删除
    类,可以使用
    $1=“$2$3$4$5”
    进行替换

    但是,如果您想替换
    类,如标题所示,则可以使用
    $1=“$2$3$4$5替换类”
    进行替换(其中字符串“替换类”是您正在替换
    类的类)

    说明:

    • (className | class)
      -捕获属性名
    • =”
      -匹配属性值的开头
      • (?:
        -启动非捕获组
        • block
          -匹配字符串
          block
        • |
          -或
        • block\s([^”]*)
          -捕获字符串
          block
        • |
          -或
        • ([^“]*)\sblock
          -捕获字符串
          块之前的类
        • |
          -或
        • ([^“]*)\sblock(?=\s)([^“]*)
          -捕获字符串
          块周围的类
      • -非捕获组结束
    • -匹配属性值的结束

    感谢您的快速回复!很抱歉,我应该提到像
    block title
    blockOverlay
    这样的类名可以包含在我不想针对的类名中,请看这里:我只想将“block”的实例替换为周围没有任何内容。有可能吗?@ftntravis-我想我明白了。。。我补充了一个解释;这是…非常感谢!!!这似乎是完美的工作。我真的很感谢你的帮助。这将节省很多时间!:D