[英]Javascript Regex - Match multi-line strings (SCSS Map)
我目前正在研究Node脚本,它将使用正则表达式搜索SCSS(Sass)文件。 目的是建立所有定义的变量及其值的一个或多个数组。 然后可以将它们与项目文档中记录的值进行比较,以检查所有内容是否同步。
我使用以下正则表达式来匹配单行变量:
string.match(/\\$[az-]+:(.*)(?=;)/)
和
string.match(/[$a-zA-Z-]+(?=:)/g)[0]
提取每个变量的名称。 但是,具有相当冗长的值的SCSS映射和SCSS变量可能会分散到多行上。
如何搜索以$
开头,以$
结尾的字符串;
并可能分布在多行上? 理想情况下,我想使用多个捕获组来返回一个数组,其中一个数组的单个行变量在一个组中,而SCSS映射在另一个组中。 但这不是必需的,两个正则表达式就可以了。
如果可以使用支持ES2018的最新Node.js版本,则可以尝试使用/s
flag 。
但是,出于这种目的,适当的解析器会更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.