Игнорировать вложенные одинарные кавычки внутри одинарных кавычек - PullRequest
0 голосов
/ 18 июня 2020

Я работаю с сопоставлением всей строки в одинарных кавычках. Проблема в том, что эти строки генерируются динамически, и мне нужно игнорировать все остальные одинарные кавычки в первом наборе кавычек. Я сталкивался с другими аналогичными решениями, но, похоже, не могу настроить их под свои нужды.

Вот с чем я работал до сих пор:

'(?:''|[^'])*'

I хотел бы сопоставить практически все в первых и последних одинарных кавычках между content: и ;

Пример текста:

@bottom {
      content: 'Here we have an embedded unescaped 'single' that is generated at runtime. {Let's ignore it
                please'
      ;
}

Это площадка, на которой я работал : https://regex101.com/r/ITHciu/2

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 18 июня 2020

Если вам абсолютно необходимо использовать регулярные выражения для этих и , вы уверены, что ; не будет внутри строки, которую вы ищете, вы можете попробовать следующее: '[^;]*'\s*;$. Он выберет все от ' и go до тех пор, пока подобное не закончится на whitesapce и ;.

Изменить: если вам нужен материал между ' и ';, вы можно было бы использовать группу '([^;]*)'\s*;$.

Однако гораздо более чистым решением было бы создание небольшого парсера, который будет читать строку char по char. Это забавное упражнение, если у вас есть немного больше времени.


Если ничего другого, вы можете использовать это регулярное выражение для исправления недопустимого синтаксиса в ваших файлах. И скажите людям, которые пишут им вручную, каким должен быть правильный синтаксис.

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