我有两个字符串,XXXXXXnumber和XXXXXXdate,我想从每个字符串中删除所有XXXXXX。 XXXXXX表示的实际字符数可能有所不同。后缀'number'和'date'是不变的。 XXXXXXnumber和XXXXXXXdate应该成为XXXXXX。
答案 0 :(得分:1)
my ($prefix) = ($string =~ /\A (.+?) (?:date|number) \z/x);
可替换地:
$string =~ s/ (?:date|number) \z//x;
答案 1 :(得分:1)
我会使用$line =~ s/(number|date)$//
之类的正则表达式来执行该任务,其中$line
可以是行。
如果您的专线在number
或date
后有其他字符,则必须将其过滤掉。另一种方法是使用类似($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/;