使用Perl正则表达式将空格插入数字

时间:2015-06-03 13:34:50

标签: regex perl

我有以下文字数据:

1290        15      46 
372         4       -1914 
670         8       -894 
1016        12      554 

我正在尝试插入空格:

'1290' -replace "(?<=(\d{3})),$&"
'-1914' -replace "(?<=(\d{3})),$&"

这些正则表达式不起作用。

我需要的输出:

1 290

或:

-1 914

2 个答案:

答案 0 :(得分:0)

您可以使用以下内容进行匹配:

(?<=\d)(?=(\d{3}))

并替换为[ ](空格)

请参阅DEMO

答案 1 :(得分:0)

您可以使用以下正则表达式:

(\d)(?=(\d{3})+(?!\d))

请参阅regex demoIDEONE demo

#!/usr/bin/perl
# your code goes here
my $ins = "1290        15      46\n372         4       -1914\n670         8       -894\n1016        12      554";
$ins =~ s/(\d)(?=(\d{3})+(?!\d))/$1 /g;
print "$ins\n";

输出:

1 290        15      46
372          4       -1 914
670          8       -894
1 016        12      554