6

CIDR 表記の IPV6 アドレスを含む IPV6 アドレスを認識できるようにする lex パターンを作成しようとしています。使用するパターンを以下に示します。

IPV4ADDRESS_CIDR [ \t]*(((2(5[0-5]|[0-4][0-9])|[01]?[0-9][0-9]?)\.){3}(2(5[0-5]|[0-4][0-9])|[01]?[0-9][0-9]?)(\/(3[012]|[12]?[0-9])))[ \t]*
IPV4ADDRESS      [ \t]*(([[:digit:]]{1,3}"."){3}([[:digit:]]{1,3}))[ \t]*
hex4             ([[:xdigit:]]{1,4})
hexseq           ({hex4}(:{hex4})*)
hexpart          ({hexseq}|({hexseq}::({hexseq}?))|::{hexseq})
IPV6ADDRESS      [ \t]*({hexpart}(":"{IPV4ADDRESS})?)[ \t]*
IPV6ADDRESS_CIDR [ \t]*(IPV6ADDRESS)(\/(1[01][0-9]|12[0-8]|[0-9]{1,2}))[ \t]*

IPV6ADDRESS_CIDR の正規表現が期待どおりに機能しません。

2001:1234::5678:5:6:7:8/64 

正しく認識されていないようです。何か間違っていますか?

4

1 に答える 1

0

次のように、IPV6アドレスの正規表現を取得できました。

IPV6ADDRESS_CIDR [ \t] {IPV6ADDRESS}(/(1[01][0-9]|12[0-8]|[0-9]{1,2}))[ \t]

上記をテストしましたが、動作しています。ありがとうございます。

于 2013-01-03T02:40:12.633 に答える