代码之家  ›  专栏  ›  技术社区  ›  James Howell

Javascript正则表达式-匹配多行字符串(SCSS映射)

  •  1
  • James Howell  · 技术社区  · 7 年前

    我目前正在编写一个节点脚本,它将使用正则表达式搜索SCSS(Sass)文件。其目的是构建一个或多个定义了所有变量及其值的数组。然后可以将这些值与项目文档中记录的值进行比较,以检查所有内容是否同步。

    我使用了以下正则表达式来匹配单行变量:

    string.match(/\$[a-z-]+:(.*)(?=;)/)

    string.match(/[$a-zA-Z-]+(?=:)/g)[0] 提取每个变量的名称。但是,SCSS映射和SCSS变量的值过于冗长,可能会扩展到多行。

    $ ,以 ; 并且可能分布在多条线路上?理想情况下,我希望使用多个捕获组返回单个数组,其中一个组中包含单行变量,另一个组中包含SCSS映射。不过这不是必需的,两个正则表达式就可以了。

    1 回复  |  直到 7 年前
        1
  •  0
  •   vsemozhebuty    7 年前

    如果您可以使用支持ES2018的最新Node.js版本,您可以尝试 /s flag .