Javascript Regex - совпадение многострочных строк (карта SCSS) - PullRequest
0 голосов
/ 05 февраля 2019

В настоящее время я работаю над сценарием Node, который будет выполнять поиск в файле SCSS (Sass) с использованием регулярных выражений.Цель состоит в том, чтобы создать массив / массивы всех определенных переменных и их значений.Затем их можно сравнить со значениями, задокументированными в документации проекта, чтобы проверить, что все синхронизировано.

Я использовал следующее регулярное выражение для сопоставления однострочных переменных:

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

и

string.match(/[$a-zA-Z-]+(?=:)/g)[0] для извлечения имени каждой переменной.Однако карты SCSS и переменные SCSS с довольно многословными значениями могут распространяться на несколько строк.

Как найти строку, которая начинается с $, заканчивается ; и может быть разбита на несколько строк?В идеале я хотел бы использовать несколько групп захвата для возврата одного массива с однострочными переменными в одной группе и отображениями SCSS в другой.Это не является существенным, хотя два регулярных выражения было бы хорошо.

1 Ответ

0 голосов
/ 05 февраля 2019

Если вы можете использовать последние версии Node.js с поддержкой ES2018, вы можете попробовать /s flag .

Однако для таких целей лучше подойдет соответствующий парсер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...