【发布时间】:2011-11-12 03:47:39
【问题描述】:
我有一个字符串aa:bb::cc:yy:zz,需要以这样的方式拆分,以便我有一个包含aa:bb::cc、yy、zz 的数组。即我想从最后创建两个子字符串,: 作为分隔符并保留为数组的元素。实现这一目标的最佳方法是什么?
例如:
aa:bb::cc:yy:zz --> ['aa:bb::cc','yy','zz']
dd:ff:gg:dd:ee:ff:fg --> ['dd:ff:gg:dd:ee','ff','gg']
我将 IP 地址:端口:协议作为密钥存储在文件中,并用“:”拆分以获取 IP、端口、协议,当 IP 地址限制为 IPv4 时,一切正常。现在我想将它移植到 IPv6,在这种情况下 IP 地址包含“:”,所以我无法通过用“:”拆分来获得正确的 IP 地址。
【问题讨论】:
-
使用标准化的
[IP address]:port格式存储(IP,port)对会更安全。 AnyEvent::Socket 模块中的parse_hostport/format_hostport有助于处理它。