Perl - несколько совпадений на одной строке с чередованием - PullRequest
0 голосов
/ 21 декабря 2011

Мне нужно извлечь несколько совпадений для строки в одной строке.Строка выглядит примерно так:

. / StaticRoutes.10.10.30_VC; ./ staticRoutes.10.10.40_FEEDS

Мне нужно извлечь каждое имя файла и поместить его внемного @array.Имя файла в строке отделяется ; .Таким образом, в приведенном выше примере я хочу извлечь staticRoutes.10.10.30_VC и staticRoutes.10.10.40_FEEDS

Любая помощь очень ценится.

Большое спасибо

Джон

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011
my $some_string = './staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS';
my @array = split /;/, $some_string;
0 голосов
/ 21 декабря 2011

Это будет версия регулярного выражения, она не будет содержать в начале ./. Если это того стоит, вы можете использовать это, иначе я бы предпочел сплит-решение.

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

Это будет соответствовать любому символу, который не является / (часть [^/]+), перед ; или концом строки (часть (?=;|$))

...