Я должен отформатировать некоторый hexdump как это:
00010: 02 03 04 05
00020: 02 03 04 08
00030: 02 03 04 08
00010: 02 03 04 05
00020: 02 03 04 05
02 03 04 05
02 03 04 08
кому:
02 03 04 05
02 03 04 08
02 03 04
02 03 04 05
02 03 04 05
02 03 04 05
02 03 04
удалите поля адреса, если существующий
удалите любого 08
в конце абзаца (сопровождаемый пустой строкой)
удалите любые пустые строки
Как это может быть сделано с помощью закона?спасибо!
Это невозможно сделать напрямую с помощью lex. Lex - это токенизатор, а не парсер.
Честно говоря, это можно сделать, используя регулярное выражение, и не требуется сложность генератора сканера + генератора синтаксического анализатора.
Если вы пропустите весь файл как одну строку, я думаю эти регулярные выражения будут делать то, что вы хотите (написано для Perl, но не проверено):
s/^\d{4}: //mg
s/ 08\n\s*\n/\n/g
s/^\s*$//mg