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

时间:2019-02-05 12:32:30

标签: javascript regex

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

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

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

string.match(/[$a-zA-Z-]+(?=:)/g)[0]提取每个变量的名称。但是,SCSS映射和SCSS变量值比较罗word的变量可能会散布到多行。

如何搜索以$开头,以;结尾并且可能分布在多行中的字符串?理想情况下,我想使用多个捕获组来返回一个数组,其中一个数组在一个组中具有单个行变量,而在另一个组中具有SCSS映射。但这不是必需的,两个正则表达式就可以了。

1 个答案:

答案 0 :(得分:0)

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

但是,出于这种目的,合适的解析器会更好。