我需要像这样格式化一些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 完成此操作?谢谢!
答案 0 :(得分:1)
使用lex无法直接完成。 Lex是一个标记器,而不是解析器。
老实说,它可以使用正则表达式完成,不需要扫描器生成器+解析器生成器的复杂性。
答案 1 :(得分:1)
如果你把整个文件作为一个字符串,我认为这些正则表达式会做你想要的(为Perl编写,但没有经过测试):
s/^\d{4}: //mg
s/ 08\n\s*\n/\n/g
s/^\s*$//mg