在Perl中,我想在字符串的末尾屏蔽/剪切X个字符(X可以是一组字符串中的一个)

时间:2013-04-25 14:10:35

标签: perl

我有两个字符串,XXXXXXnumber和XXXXXXdate,我想从每个字符串中删除所有XXXXXX。 XXXXXX表示的实际字符数可能有所不同。后缀'number'和'date'是不变的。 XXXXXXnumber和XXXXXXXdate应该成为XXXXXX。

4 个答案:

答案 0 :(得分:1)

my ($prefix) = ($string =~ /\A (.+?) (?:date|number) \z/x);

可替换地:

$string =~ s/ (?:date|number) \z//x;

答案 1 :(得分:1)

我会使用$line =~ s/(number|date)$//之类的正则表达式来执行该任务,其中$line可以是行。

如果您的专线在numberdate后有其他字符,则必须将其过滤掉。另一种方法是使用类似($num) = ($line =~ /^(.*)(number|date).*$/);

的表达式

答案 2 :(得分:0)

使用正则表达式:

($newvar = $oldvar) =~ s/^(.*)(number|date)$/$1/;

如果您没有$oldvar的原始值(包括Xes),则可以简化为

$oldvar =~ s/^(.*)(number|date)$/$1/;

答案 3 :(得分:0)

简单的替换可以解决它:

$str =~ s/(?:number|date)\z/;