Я не могу сопоставить шаблон с требованием из-за строки, содержащей JS, с шаблоном, похожим на исключение или разделители. Пример кода здесь samplecode
Я пробовал следующие шаблоны соответствия регулярных выражений
^[}\s*)\s*(\s*{\s*](?<data>.+)([}\s*)])*$
^[^\(]*\((?<template>.+)\)\s*\((?<data>.+)\)[^\)]*$
Ожидаемый результат находится между комментариями
/**************** извлекаемые данные - начало *************** /
/ **************** извлекаемые данные - конец *************** /
(input => {
var chartWrapper = $("<div></div>").appendTo("#container")
.attr("id", "chart_wrapper");
var chartDiv = $("<div></div>").appendTo("#chart_wrapper")
.attr("id", "chart_div");
$('#chart_wrapper').append(`<style>
#chart_wrapper{
width:1240px;
height:688px;
position:relative;
padding: 35px 30px 20px 30px;
box-sizing:border-box;
}
</style>`);
var tempBrandGroup = ((function () {
var marketsharecolors = [
"#f59031",
"#363636"
];
var group = {};
group.name = uniqueCategory.map((value) => {
return value;
});
var _counter = 0;
group.brands = input.dataSeries.map(function (dataitem) {
var dataitem_obj = {};
dataitem_obj.brand_name = dataitem.name;
dataitem_obj.power_in_mind = dataitem.pim;
dataitem_obj.market_share = {};
dataitem_obj.market_share.value = dataitem.marketShare;
dataitem_obj.market_share.color = marketsharecolors[_counter];
dataitem_obj.baseSize = dataitem.baseSize;
if (_counter === 0) _counter = 1;
dataLabels.forEach(function (motivationalFactor, index) {
dataitem_obj[motivationalFactor] = {};
var motObj = dataitem.brandData.filter((item)=> item.name == motivationalFactor)
dataitem_obj[motivationalFactor].value = motObj[0].value;
})
return dataitem_obj;
})
return group;
})());
})({
/****************data to be extracted - start***************/
"title":"Overview of Brand Imagery",
"chosenBrand":"Brand A",
"motFactorsRefBaseSize":"20",
"brandsRefBaseSize":"30",
"dataSeries":[
{
"name":"BrandA",
"category":"Your Business",
"brandData":[
{
"name":"Motivation factor 6",
"value":50,
"baseSize":20,
"tanimotoGroup":2
},
{
"name":"Motivation factor 7",
"value":41,
"baseSize":50,
"tanimotoGroup":1
}
],
"pim":"50",
"marketShare":"23",
"baseSize":"20"
}
]
/****************data to be extracted - end ***************/
})