1

次のように 16 進ダンプをフォーマットする必要があります。

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を使用してこれを行うにはどうすればよいですか? ありがとう!

4

2 に答える 2

1

lex を使用して直接実行することはできません。Lex はパーサーではなくトークナイザーです。

正直なところ、これは正規表現を使用して行うことができ、スキャナー ジェネレーター + パーサー ジェネレーターのような複雑さは必要ありません。

于 2010-05-13T05:27:29.480 に答える
1

ファイル全体を 1 つの文字列として丸呑みする場合、これらの正規表現で目的が達成されると思います (Perl 用に作成されていますが、テストはされていません)。

s/^\d{4}: //mg
s/ 08\n\s*\n/\n/g
s/^\s*$//mg
于 2010-05-13T16:54:18.107 に答える