Помощь с Regex (регулярные выражения)

dr.reklam

Client
Регистрация
02.06.2020
Сообщения
75
Реакции
31
Баллы
18
Здравствуйте. Как через regex достать данные находящиеся между определенными символами, которые на разных строках.

Например, нужно из вот этого
JavaScript:
Развернуть Свернуть Копировать
{
  "items": [
    {
      "properties": [
        {
          "catalogItemType": "API",
          "catalogItemTypeId": 105,
          "values": [
            "GL-4"
          ]
        },
        {
          "catalogItemType": "Вязкость",
          "catalogItemTypeId": 102,
          "values": [
            "75W-90"
          ]
        }
      ],
      "catalogItemId": 1695,
      "volume": "",
      "name": "Масло трансмиссионное",
      "comment": "Спецификация масла ступенчатой коробки передач"
    },
    {
      "properties": [
        {
          "catalogItemType": "Спецификация FMVSS 116",
          "catalogItemTypeId": 185,
          "values": [
            "DOT 3",
            "DOT 4"
          ]
        }
      ],
      "catalogItemId": 1387,
      "volume": "",
      "name": "Тормозная жидкость"
    }
  ]
}

Получить это:
JavaScript:
Развернуть Свернуть Копировать
"properties": [
        {
          "catalogItemType": "Спецификация FMVSS 116",
          "catalogItemTypeId": 185,
          "values": [
            "DOT 3",
            "DOT 4"
          ]
        }
      ],
      "catalogItemId": 1387,
      "volume": "",
      "name": "Тормозная жидкость"
    }
  ]
}


т.е. вся сложность для меня это как задать в regex указание нескольких символов если они находятся на разных строках. Нужно найти текст от "properties" до
}
]
}
 
т.е. вся сложность для меня это как задать в regex указание нескольких символов если они находятся на разных строках. Нужно найти текст от "properties" до
}
]
}
Попробуйте такой вариант регулярки: "properties":\s+\[[\w\W]*?}[\w\W]*?][\w\W]*?}
 
  • Спасибо
Реакции: dr.reklam и Yuriy Zymlex
Используйте парсинг JSON.
 
Попробуйте такой вариант регулярки: "properties":\s+\[[\w\W]*?}[\w\W]*?][\w\W]*?}
Для конкретно этого примера работает, но если исходный текст другой то собирает не корректно. Пробовал разные комбинации, немного не то.
 
Мой пример не распознает встроенный конструктор JSONPath

Всё прекрасно парсится:

90313


{-Json.items[0].properties[0].catalogItemType-}
Зная Count, можно в цикле перебирать значения.
 
  • Спасибо
Реакции: dr.reklam
Всё прекрасно парсится:

Посмотреть вложение 90313

{-Json.items[0].properties[0].catalogItemType-}
Зная Count, можно в цикле перебирать значения.
В конструкторе не получалось, а через кубик Данные->Обработка JSON/XML все получилось, и данные отобразились в переменных Json
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)