我需要在一行中爲一個字符串提取多個匹配項。該行看起來是這樣的:Perl - 在同一行上進行多個匹配,並進行替換
./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS
我需要提取每個文件名,並把它在某些@array。行上的文件名由分開;。所以在上面的例子中,我想只提取staticRoutes.10.10.30_VC和staticRoutes.10.10.40_FEEDS
任何幫助極大的讚賞。
非常感謝
約翰
我需要在一行中爲一個字符串提取多個匹配項。該行看起來是這樣的:Perl - 在同一行上進行多個匹配,並進行替換
./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS
我需要提取每個文件名,並把它在某些@array。行上的文件名由分開;。所以在上面的例子中,我想只提取staticRoutes.10.10.30_VC和staticRoutes.10.10.40_FEEDS
任何幫助極大的讚賞。
非常感謝
約翰
這將是正則表達式版本,它不會包含在結果中的領先./
。如果這是值得的,你可以使用這個,否則我更喜歡拆分解決方案。
my $s = "./staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS";
my @res = $s =~ m~[^/]+(?=;|$)~g;
這將匹配任何字符不是一個/
(在[^/]+
部),;
或字符串的結尾(在(?=;|$)
部分)
my $some_string = './staticRoutes.10.10.30_VC;./staticRoutes.10.10.40_FEEDS';
my @array = split /;/, $some_string;
首先,非常感謝您的回覆之前。我需要從每場比賽中除掉./。現在我知道我可以在另一行代碼中使用替換/替換來做到這一點,但是是否有可能進行匹配,以便我不需要這樣做..? – Wilko 2011-12-21 08:53:16
這是一種享受!非常感謝您的幫助 – Wilko 2011-12-21 09:36:55
請注意,這隻有在字段中總是有'/'的情況下才有效。如果你想解決這個問題,可在否定字符類中添加一個';'。 – Qtax 2011-12-21 10:18:39