сопоставьте шаблон, игнорируя пробелы, и выберите группу между - PullRequest
0 голосов
/ 30 сентября 2019

Я не могу сопоставить шаблон с требованием из-за строки, содержащей 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 ***************/  
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...