我有两种字符串:
EVASA 2144
IN ELABORAZIONE 16278
我需要一些perl脚本来替换所有空格只有一个。
我需要的输出是:
EVASA 2144
有什么建议吗?
答案 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