Regex Perl-在同一行上交替进行多个匹配
我需要在一行上为一个字符串提取多个匹配项。这条线看起来像这样: /staticRoutes.10.10.30_VC/staticRoutes.10.10.40_提要 我需要提取每个文件名并将其放入某个@数组中。行上的文件名由分隔。因此,在上面的示例中,我只想提取staticRoutes.10.10.30_VC和staticRoutes.10.10.40_提要 非常感谢您的帮助 非常感谢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版本,它不会在结果中包含前导的/。如果这是值得的,您可以使用它,否则我更喜欢分割解决方
John这将是regex版本,它不会在结果中包含前导的
/
。如果这是值得的,您可以使用它,否则我更喜欢分割解决方案
my $s = "./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS";
my @res = $s =~ m~[^/]+(?=;|$)~g;
这将匹配
/
([^/]+
部分)之前的任何非/
字符或字符串的结尾((?=;|$)
部分)首先,非常感谢您的回复。我需要从每一场比赛中去掉/的部分。现在我知道我可以在另一行代码上使用替换/替换来实现这一点,但是否可以进行匹配,以便我不需要这样做呢?请注意,只有在字段中始终包含/
时,这才有效。添加一个如果要修复此问题,请在否定字符类中使用code>。
my $s = "./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS";
my @res = $s =~ m~[^/]+(?=;|$)~g;