在使用过程中,遇到一个问题,用Perl的正则表达式无法解决,其正则匹配虽然异常强大,不过好像没有发现满足我需要的replace函数,在实际情况中,我已经把需要替换的15位数据生成好了,只要在特定的文档中的特定的位置,如在需要行中的第15-20的位置把文本替换掉,正则无法做这个,只能手写了一个函数,通过Perl最基本的substr实现此功能:

sub replace(){


my ($line,$exp,$beg,$end)=@_;

$len=rindex $line."\$", "\$"; #计算Line长度
my $line_left=substr($line,0,$beg);

my $line_right=substr($line,$end,$len);

my $newline=$line_left.$exp.$line_right;

}

整个非常简单,line就是原始字符串,exp就是要替换进去的字符串,beg和end是要将原始字符串替换的位置。

评论
发表评论

您还没有登录,请登录后发表评论

darkjune
搜索本博客
我的相册
45a46d56-bef4-4041-ba1f-3dbf35966fe7-thumb
siebel
共 1 张
最近加入圈子
存档
最新评论