perl 正则表达式的替换问题-在线等
因为项目需要临时学习perl 做一些文本处理,在替换上遇到问题,时间比较紧,就到这里请大侠们指教:
伪代码(下面如果有语法错误请指出):
$str = "abc 22";
$str =~ s/(\d)+/(?{&mySub($1)})/;
sub mySub{
$_[0]/2; //这里会自动将22转成number 类型么?
}
我想达到的效果是经过替换后str的值为"abc 11"
也就是说,在替换过程中,需要调用一个外部函数来对匹配的内容($i)进行处理后再进行替换。
我了解到perl中有(?{})及/e的语法似乎可以完成这样的操作,但是试验没有成功。
不知是我的对上面用法的理解有问题,还是解决这样的问题所采用的方案有问题?请指教,谢谢!