Как вы соответствуете повторяющейся группе в повторяющейся группе?Regex: получить вложенную повторяющуюся группу
Например получать все действительные записи в лог-файле:
---:
TS : 150602000006S
EC1: 02429.523
EC2: 05604.110
---
---:
TS : 150603000006S
---:
TS : 150603000006S
EP1: 3333.523
---
Как следующие матчи:
[
[
['TS ', '150602000006S'],
['EC1', '02429.523'],
['EC2', '05604.110']
],
[
['TS', '150603000006S'],
['EP1', '3333.523']
]
]
Извлечение отдельных записей свойств может быть сделано с (See on regex101):
([A-Z0-9 ]{3,3}): ([0-9SW]+)?([0-9\.SW]{3,})\n
Однако, при размещении регулярных выражений в группе записей (like seen here) группы свойств перестают сопоставляться повторяющимся образом.
Как это правильно сделано?
Вероятно не с регулярным выражением ... – Mena
@Mena Почему это невозможно? – JasperJ
Я не говорю, что это категорически невозможно, но в целом регулярные выражения хороши для разбора текста, а не контекстно для данной грамматики (например, регулярное выражение против разметки, как правило, очень плохое представление). Когда у вас есть вложенные элементы и правила для вложенности, регулярные выражения становятся очень громоздкими очень скоро. Предполагая, что вы находите правильный способ сопоставления с вашими иерархическими записями, само выражение будет длинным, вероятно, нечитаемым и очень сложно поддерживать. Обычно для этого нужно реализовать собственный синтаксический анализатор. – Mena