Поиск цены регулярным выражением

cpagranat

Новичок
Регистрация
12.06.2020
Сообщения
4
Благодарностей
0
Баллы
1
Помогите с регуляркой, пожалуйста. Никак не получается вытянуть значение.

Есть массив - https://pastebin.com/uPzbuY7Z
Регуляркой нужно вытянуть цену по определенному айди.
Достать цену из priceSumWithCouponAndDiscount

Идет перебор в цикле.
Нахожу значение регуляркой по айди макросом из переменной, но он тянет последние совпадение в массиве.
(?<="cod1S":{-Variable.idReg-})[\w\W]*(?=couponNumber":")

regex1.png


Как вытянуть первое совпадение и в переменную положить только цену?

Суммы в массиве будут равняться
12985366 - 118993
12985369 - 63442
12985370 - 59152
12985368 - 50380
12985372 - 80837
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Массив данных, которые Вы предоставили - это JSON. Попробуйте воспользоваться встроенным экшеном обработки JSON.
В цикле перебирать значения и сравнивать необходимое свойство с переменной через стандартный экшен if.
 
  • Спасибо
Реакции: cpagranat

Reysh

Client
Регистрация
02.12.2018
Сообщения
198
Благодарностей
133
Баллы
43
67532


67536
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: cpagranat

cpagranat

Новичок
Регистрация
12.06.2020
Сообщения
4
Благодарностей
0
Баллы
1
Массив данных, которые Вы предоставили - это JSON. Попробуйте воспользоваться встроенным экшеном обработки JSON.
В цикле перебирать значения и сравнивать необходимое свойство с переменной через стандартный экшен if.
Да, я понимаю это. Пробовал как раз действием парсинг JSON и не получилось.
Решил использовать GET-запрос страницы и поиск в переменной полученной после гета.
Пример для парсинга JSON не особо удачный привел. Получается много мусора и не читает его. Из-за этого и решил пробовать регуляркой.

Вот такое полный массив - https://pastebin.com/QWtdfyr9
Добавляются посреди массива "[" "]" и из-за этого действие не отрабатывает.
 
Последнее редактирование:

cpagranat

Новичок
Регистрация
12.06.2020
Сообщения
4
Благодарностей
0
Баллы
1

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Да, я понимаю это. Пробовал как раз действием парсинг JSON и не получилось.
Решил использовать GET-запрос страницы и поиск в переменной полученной после гета.
Пример для парсинга JSON не особо удачный привел. Получается много мусора и не читает его. Из-за этого и решил пробовать регуляркой.

Вот такое полный массив - https://pastebin.com/QWtdfyr9
Добавляются посреди массива "[" "]" и из-за этого действие не отрабатывает.
Можно воспользоваться такой регуляркой (?<="cod1S":{-Variable.id-}[^}]+"priceWithCouponAndDiscount":)\d+ (в переменной {-Variable.id-} необходимый id). Она работает на прендоставленных данных, но споткнётся если между cod1S и priceWithCouponAndDiscount будет лишняя фигурная скобка } (например в названии товара).

Можете ещё попросить помощи в составлении выражения в этой теме
 
  • Спасибо
Реакции: cpagranat

cpagranat

Новичок
Регистрация
12.06.2020
Сообщения
4
Благодарностей
0
Баллы
1
Можно воспользоваться такой регуляркой (?<="cod1S":{-Variable.id-}[^}]+"priceWithCouponAndDiscount":)\d+ (в переменной {-Variable.id-} необходимый id). Она работает на прендоставленных данных, но споткнётся если между cod1S и priceWithCouponAndDiscount будет лишняя фигурная скобка } (например в названии товара).

Можете ещё попросить помощи в составлении выражения в этой теме
Спасибо! Работает.
Прочекал еще несколько массивов побольше - не встречается }
 

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