我有一个字符串 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 地址:端口:协议(protocol)作为 key 存储在文件中,并用“:”拆分以获取 IP、端口、协议(protocol),当 IP 地址限制为 Ipv4 时,一切正常。现在我想让它移植到 IPv6,在这种情况下 IP 地址包含“:”,所以我无法通过用“:”拆分来获得正确的 IP 地址。
最佳答案
怎么样:
#!/usr/local/bin/perl
use Data::Dump qw(dump);
use strict;
use warnings;
my $x = 'dd:ff:gg:dd:ee:ff:fg';
my @l = $x =~ /^(.*?):([^:]+):([^:]+)$/g;
dump @l;
输出:
("dd:ff:gg:dd:ee", "ff", "fg")
关于regex - perl : how to split?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334363/