左调整+正则表达问题-解决

左调整+正则表达问题-解决

请问各位大师,如果对有几列数字的文本进行调整,要求每列都按照向左调整,可以用正则表达实现吗?

如 : 1    2    3
       11   15   16

变为:     1    2    3
           21  25   26

即1.个位数字永远不变右对齐,所有改变向左进行;
  2. 两列之间字符固定,可以空格填补或占用空格;

printf(%5s,$str)
split && printf
or
s//sprintf/g
多谢!但是如果想直接写到代码中:

s/(\d+)/' 'x length($1).($1+10)/ge;

搞个左匹配 $` 怎么写?

因为printf(%5s,$str) 只能是对最后修改过的数据进行输出格式化,而我想在原表上改动。
哦。刚看到,现在试试。多谢!
Thanks for your consideration!
楼上两位辛苦了,但是对Lonki 的用法不太明白,请指教。
一定要正则的话:

s/(\s+\d+)/(' ' x (length($1) - length($1 + $num))) . ($1 + $num)/eg;

前提是原始数据的间隔足够
Got it through different ways.

Many Thanks!
我火星了,主题都看不懂……