我需要在一行中为字符串提取多个匹配项。该行看起来像这样:
./ staticRoutes.10.10.30_VC; ./ staticRoutes.10.10.40_FEEDS
我需要提取每个文件名并将其放入@array中。该行上的文件名由; 分隔。所以在上面的例子中,我只想提取 staticRoutes.10.10.30_VC 和 staticRoutes.10.10.40_FEEDS
非常感谢任何帮助。
非常感谢
约翰
答案 0 :(得分:2)
my $some_string = './staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS';
my @array = split /;/, $some_string;
答案 1 :(得分:0)
这将是正则表达式版本,它不会在结果中包含前导./
。如果这是值得的,你可以使用它,否则我更喜欢拆分解决方案。
my $s = "./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS";
my @res = $s =~ m~[^/]+(?=;|$)~g;
这将匹配任何不是/
([^/]+
部分)的字符,在;
之前或字符串末尾((?=;|$)
部分)< / p>