用空格替换字符串

时间:2014-12-09 21:21:46

标签: perl

我需要用等于删除行的字符串空格替换某个字符串,例如,如果给出了

1234567890 

我需要用空格替换一些文本,这些空格等于删除的字母数。

123    8790

1234    90

2 个答案:

答案 0 :(得分:0)

这应该这样做:

#!/usr/perl
my $a="123456";
my $remove = "234";
$a=~ s/(.*)$remove(.*)/${1}.' ' x length($remove).${2}/e;
print $a;             

答案 1 :(得分:0)

这实际上取决于如何指定"部分文字"

假设您要替换字符串4567,那么您可以使用模式匹配来查找和替换它,就像这样

use strict;
use warnings;

use Data::Dump;

my $s = '1234567890';

$s =~ s/(4567)/' ' x length $1/e;

或者如果您知道子字符串的偏移量和长度,那么您可以使用substr,就像这样

substr($s, 3, 4) = ' ' x 4;

给出相同的结果。