我有两个字符串,XXXXXXnumber 和 XXXXXXdate,我想从每个字符串中删除所有 XXXXXX。XXXXXX 所代表的实际字符数可能会有所不同。后缀“数字”和“日期”是不变的。XXXXXXnumber 和 XXXXXXXdate 应该变成 XXXXXX。
问问题
142 次
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 回答