0

我有两个字符串,XXXXXXnumber 和 XXXXXXdate,我想从每个字符串中删除所有 XXXXXX。XXXXXX 所代表的实际字符数可能会有所不同。后缀“数字”和“日期”是不变的。XXXXXXnumber 和 XXXXXXXdate 应该变成 XXXXXX。

4

4 回答 4

1

我会$line =~ s/(number|date)$//为该任务使用正则表达式,其中$line任何一行都可以。

number如果您的行在or之后有其他字符date,则它们也必须被过滤掉。另一种方法是使用类似的表达式($num) = ($line =~ /^(.*)(number|date).*$/);

于 2013-04-25T14:18:34.727 回答
1
my ($prefix) = ($string =~ /\A (.+?) (?:date|number) \z/x);

或者:

$string =~ s/ (?:date|number) \z//x;
于 2013-04-25T14:16:45.337 回答
0

一个简单的替换就可以解决它:

$str =~ s/(?:number|date)\z/;
于 2013-04-25T15:00:33.770 回答
0

使用正则表达式:

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

如果您对$oldvar' 的原始值(包括 Xes)没有更多的使用,这将简化为

$oldvar =~ s/^(.*)(number|date)$/$1/;
于 2013-04-25T14:16:43.257 回答