我在下面给出了一个模式,用于匹配虚线四元组符号中的ipv6地址。
IPV4ADDRESS (([[:digit:]]{1,3}"."){3}([[:digit:]]{1,3}))
hex4 ([[:xdigit:]]{1,4})
hexseq ({hex4}(:{hex4}*))
hexpart ({hexseq}|({hexseq}::({hexseq}?))|::{hexseq})
IPV6ADDRESS ({hexpart}(":"{IPV4ADDRESS})?)
我用
%x S_rule S_dst_ip
<S_rule>(dst-ip){SPACE} {
BEGIN(S_dst_ip);
}
<S_dst_ip>\{{IPV6ADDRESS}\} {
/*code to process the sring here.*/
}
匹配表单
的输入dst-ip {3ffe:1900:4545:3:200:f8ff:fe21:67cf}
由于某种原因,给定的正则表达式似乎与上述模式不匹配。有人可以在我的代码中指出错误。
有人可以在我的代码中指出错误吗?
答案 0 :(得分:2)
我认为*
可能出错了地方:
hexseq ({hex4}(:{hex4}*))
这是你的意思吗?
hexseq ({hex4}(:{hex4})*)