начало работы с законом

Я должен отформатировать некоторый 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 в конце абзаца (сопровождаемый пустой строкой)

  • удалите любые пустые строки

Как это может быть сделано с помощью закона?спасибо!

1
задан Moeb 13 May 2010 в 17:12
поделиться

2 ответа

Это невозможно сделать напрямую с помощью lex. Lex - это токенизатор, а не парсер.

Честно говоря, это можно сделать, используя регулярное выражение, и не требуется сложность генератора сканера + генератора синтаксического анализатора.

1
ответ дан 3 September 2019 в 00:35
поделиться

Если вы пропустите весь файл как одну строку, я думаю эти регулярные выражения будут делать то, что вы хотите (написано для Perl, но не проверено):

s/^\d{4}: //mg
s/ 08\n\s*\n/\n/g
s/^\s*$//mg
1
ответ дан 3 September 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: