Так что, к сожалению, Javascript не поддерживает токен \K
в регулярных выражениях, я ищу способ обойти это.
Моя проблема:
Iполучите следующее регулярное выражение: Total statistics:\s+\K\d+
, которое должно дать мне "ведомые метры" моей газонокосилки из строки журнала, как это:
{"logSystem":[[2019,4,26,10,37,0,44872,"Battery Charge Started! 17.0°C
21.05Volt","#000099","normal"],[2019,4,26,10,37,0,44871,"Total statistics:
334418m, 23862min, blade on time: 21289min","#2E2EFE","bold"],
[2019,4,26,10,37,0,44870,"Current cut statistics: 2m, 0min, blade on time:
0min","#2E2EFE","bold"],
Рабочий пример (но не в JS) здесь: https://regex101.com/r/oL9gN5/11
Дополнительные подсказки:
Метры не всегда имеют длину 6 символов, могут быть 7 в течение нескольких лет
Иногда строка Total statistics:
встречается дважды в журнале, первыйтребуется сопоставление (более новые данные).
Для пояснения:
в большинстве случаев я бы использовал разбор JSON (и вы должны использовать тоже), но остальная часть журналав основном бесполезные данные, и мне нужна только одна точка данных.Газонокосилка создает запись в журнале каждый раз, когда сталкивается с препятствием или поворачивает на краю зоны (я вырезал эту часть).Кроме того, он показывает только последние 100 строк журнала без возможности перехода вперед / назад.
Мне потребовалось некоторое время, чтобы выяснить это регулярное выражение, только чтобы обнаружить, что оно не работает в JS (iobroker),Спасибо за любую помощь!