如何使用flex和bison验证ipv4地址列表?

时间:2015-03-17 13:09:57

标签: regex bison flex-lexer

我用来验证IPv4地址的正则表达式如下:

dec_octet   [0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
IPv4Address {dec_octet}\.{dec_octet}\.{dec_octet}\.{dec_octet}
%%
{IPv4Address}  { /* return the value */ }

现在我要验证ipv4地址列表。如果可以重用相同的正则表达式会很好。样本输入:

ip=(1.1.1.1,2.2.2.2,3.3.3.3)

分隔符可以是除括号或逗号之外的任何内容。 任何帮助将不胜感激!!

1 个答案:

答案 0 :(得分:2)

Say IPV4是有效IPv4地址的令牌lex返回,在解析器文件中添加这些规则:

ipv4vector:
    "ip" '='  '(' ipv4list ')' 
ipv4list:
    IPV4 | ipv4list ',' IPV4