2012-12-06 20 views
0

我有一個模式,下面給出了匹配虛線四分法符號中的ipv6地址。用於識別IPV6地址的Lex模式

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} 

的輸入給定正則表達式似乎不匹配上述模式對於一些reason.Could某人是足以指出我的代碼中的錯誤。

有人可以指出我的代碼中的錯誤嗎?

回答

2

我覺得*可能是放錯了地方:

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

這是你的意思?

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