Regex Perl-在同一行上交替进行多个匹配

Regex Perl-在同一行上交替进行多个匹配,regex,perl,multiple-matches,Regex,Perl,Multiple Matches,我需要在一行上为一个字符串提取多个匹配项。这条线看起来像这样: /staticRoutes.10.10.30_VC/staticRoutes.10.10.40_提要 我需要提取每个文件名并将其放入某个@数组中。行上的文件名由分隔。因此,在上面的示例中,我只想提取staticRoutes.10.10.30_VC和staticRoutes.10.10.40_提要 非常感谢您的帮助 非常感谢 John这将是regex版本,它不会在结果中包含前导的/。如果这是值得的,您可以使用它,否则我更喜欢分割解决方

我需要在一行上为一个字符串提取多个匹配项。这条线看起来像这样:

/staticRoutes.10.10.30_VC/staticRoutes.10.10.40_提要

我需要提取每个文件名并将其放入某个@数组中。行上的文件名由分隔。因此,在上面的示例中,我只想提取staticRoutes.10.10.30_VCstaticRoutes.10.10.40_提要

非常感谢您的帮助

非常感谢


John

这将是regex版本,它不会在结果中包含前导的
/
。如果这是值得的,您可以使用它,否则我更喜欢分割解决方案

my $s = "./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS";
my @res = $s =~ m~[^/]+(?=;|$)~g;

这将匹配
/
[^/]+
部分)之前的任何非
/
字符或字符串的结尾(
(?=;|$)
部分)

首先,非常感谢您的回复。我需要从每一场比赛中去掉/的部分。现在我知道我可以在另一行代码上使用替换/替换来实现这一点,但是否可以进行匹配,以便我不需要这样做呢?请注意,只有在字段中始终包含
/
时,这才有效。添加一个
my $s = "./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS";
my @res = $s =~ m~[^/]+(?=;|$)~g;