我有一个lex模式文件(test.l),我想在其中识别IPv4地址和IPv6地址的模式。
目前,我使用二进制模式表示法
src -ip of 192.168.156.203 is to be written as
1 src-ip {11000000 10101000 10011100 11001011}
BINARY_PATTERN [ \t]*[ \t0-1\-\*]+[ \t]*
<S_src_ip>\{{BINARY_PATTERN}\} {
/*Some code here*/
}
<S_dst_ip>\{{BINARY_PATTERN}\}|\{[0-255]\\.[0-255]\\.[0-255]\\.[0-255}\}
flex --header-file="test.h" test.l
test.l:50: bad character class
最佳答案
我想我看到错字了。
<S_dst_ip>\{{BINARY_PATTERN}\}|\{[0-255]\\.[0-255]\\.[0-255]\\.[0-255}\}
<S_dst_ip>\{{BINARY_PATTERN}\}|\{[0-255]\\.[0-255]\\.[0-255]\\.[0-255]\}
[0-255]
不会实现您想要的功能。它将匹配一个数字0、1、2或5。
https://stackoverflow.com/questions/13618002/