【发布时间】:2017-03-04 07:34:24
【问题描述】:
我目前正在尝试解析一个文本文件并在其中查找任何十六进制数字。如果十六进制数不正确,我会将其显示为非数字。
input:
-0xA98F
0XA98H
0x123
0xabc
expected output:
-0xA98F valid
0x123 valid
0xabc not valid
0xA98H not valid
我的问题是,如果我得到类似 0xA98H 的内容,它将输出为 0xA98 并显示为数字。我的目标是让我的输出像我的示例一样,但是我没有看到任何解决我的问题的方法。
[-]?[0][x|X][0-9A-F]+ {cout << yytext << " Number" << endl; }
【问题讨论】:
-
简而言之,我希望忽略此值而不是显示 0xA98,而是显示为 0xA98H = 不是数字
-
您为什么要创建一个新问题而不是编辑您的原始问题。当您改进问题时,我会改进我对您之前的问题lex parser not displaying hex correctly 的回答。
-
第一个匹配第二个不匹配的模式很容易修改。但是,只要我不知道 1. 输入中还可能发生什么 2. 还必须匹配(或不匹配)什么,这种努力就毫无价值。请提供(不要太长)示例输入以及预期的输出。
-
输入中唯一会出现的是各种假/正十六进制值。我为输入示例编辑了我的帖子。
标签: parsing flex-lexer lex