小编IRS*_*HAD的帖子

CIDR表示法中IPV6地址的正则表达式

我正在尝试编写一个lex模式,这将允许我识别IPV6地址,包括带有CIDR表示法的IPV6地址.我使用的模式如下所示.

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]*
Run Code Online (Sandbox Code Playgroud)

IPV6ADDRESS_CIDR的正则表达式没有按预期工作.我正在测试

2001:1234::5678:5:6:7:8/64 
Run Code Online (Sandbox Code Playgroud)

它似乎没有正确识别它.我在这里犯了一些错误?

regex lex ip-address ipv6 cidr

6
推荐指数
1
解决办法
1132
查看次数

我们必须只使用寄存器变量?

正如我们所知道的register variable就是faster accessible,它是于compiler创建的任何变量register variable.

register int val;
Run Code Online (Sandbox Code Playgroud)

我只是想知道" 我们必须使用register variable哪种情况/应用程序,而其他变量在这种情况下没用?"

如果你可以放一段代码,那就明白了.

c compiler-construction variables storage cpu-registers

1
推荐指数
1
解决办法
218
查看次数