删除除" all"之外的所有字符或者"所有"

时间:2017-04-29 20:01:26

标签: perl

我有这样的字符串

$input = "ALL112343" or $input = "all11234" or $input = "ALL 1234"

我的期望输出是

$input = "ALL" or $input = "all"

那么,如何删除该字符串中的所有字符,除了单词" all"或"所有"?

谢谢大家的帮助,

2 个答案:

答案 0 :(得分:3)

你想要

($input) = $input =~ /(all)/i;

答案 1 :(得分:1)

如果只有一次出现allALL

$input = $input =~ /(all|ALL)/ ? $1 : "";

如果可能多次出现allALL

$input =~ s/\G(?:all|ALL)*\K.//sg;

$input = join('', $input =~ /all|ALL/g );

拥有一系列匹配项可能更有用:

my @matches = $input =~ /all|ALL/g;