【发布时间】:2018-10-10 20:34:48
【问题描述】:
我有一个 IPv6 地址
> puts $addr
3ffe:0:4:ff00::fc:5
我想把它分成两组
- 3ffe:0:4:ff00
- fc:5
我尝试了“拆分”命令,但它不起作用。正则表达式给出以下结果:
> regexp -all -- {(\S+)[set z](\S+)} $addr match g1 g2
1
> puts $g1
3ff
> puts $g2
:0:4:ff00::fc:5
对拆分它们的方法有什么建议吗?
【问题讨论】:
-
(.*)::(.*)也许? -
那行不通。 IPv6 地址的问题在于它在字符串中也有一个“:”。并且正则表达式将匹配单个“:”并在继续之前拆分。
-
(.*)::(.*)永远不会匹配单个“:”