0

我有一个下面给出的模式来匹配点分四符号中的 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}

由于某种原因,给定的正则表达式似乎与上述模式不匹配。有人可以指出我的代码中的错误吗?

有人可以指出我的代码中的错误吗?

4

1 回答 1

3

我认为*可能是在错误的地方:

hexseq       ({hex4}(:{hex4}*))

这是你的意思吗?

hexseq       ({hex4}(:{hex4})*)
于 2012-12-06T03:52:36.123 回答