字符串中的perl空格替换

时间:2010-11-03 11:30:51

标签: perl

我有两种字符串:

EVASA           2144
IN ELABORAZIONE         16278

我需要一些perl脚本来替换所有空格只有一个。

我需要的输出是:

EVASA 2144

有什么建议吗?

4 个答案:

答案 0 :(得分:7)

你可以使用一个非常简单的正则表达式:

#!/usr/bin/perl
use strict;

my $line = 'EVASA           2144';

# This is the line that actually does the work
$line =~ s/\s+/ /g;

print $line, "\n";

答案 1 :(得分:4)

我的建议是,您花一些时间阅读随每个现代版本的Perl分发的Regular Expression tutorial

答案 2 :(得分:2)

$a = "hello    \t world";
$a =~ s/\s+/ /;
print $a;

如果字符串中有多个位置可以进行替换,请使用

$a = "hello    \t world    hi";
$a =~ s/\s+/ /g;
print $a;

答案 3 :(得分:0)

您也可以将tr运算符与s选项一起使用,这可以为您做更多的事情(转换字符),可能比正则表达式方法更快

$a =~ tr/ \t/ /s;

可以在perlop联机帮助页

中找到说明
perldoc perlop