Привет всем,
У меня есть небольшая проблема, которую я явно не могу решить.Это включает в себя PCRE, реализующую негативную перспективу И за условиями, которые должны (но явно не работают) работать вместе.
Что я пытаюсь сделать:
У меня есть строка, содержащая константу вJavaScript-совместимый синтаксис.Синтаксис этой строки необходимо преобразовать, чтобы он соответствовал стандартам JSON.
Проблема, с которой я сталкиваюсь:
Когда я пытаюсь инкапсулировать ключи свойств объекта с помощью кавычек, мне нужно различать "реальный""ключи свойств из строк, содержащихся в массиве, которые выглядят как ключи свойств.
Пример ввода (все JS):
const Const = {
propertyKeyA: "someValue",
propertyKeyB: ["ThisIsMyHeadache:ItShouldNotBeChanged"]
};
Желаемый вывод:
{
"propertyKeyA": "someValue",
"propertyKeyB": ["ThisIsMyHeadache:ItShouldNotBeChanged"]
}
Мой подход PCRE:
$output = preg_replace(
'~(?:^|\b) (?![\'"]) (\w+) (?<![\'"]) :~mx',
'"\1":',
$input
);
, что приводит к:
{
"propertyKeyA": "someValue",
"propertyKeyB": [""ThisIsMyHeadache":ItShouldNotBeChanged"]
}
Обратите внимание на двойные кавычки в определении массива.Мне кажется, что условия вообще не работают.
У кого-нибудь есть идеи, как это решить?Было бы безмерно оценили!
Best, Крис