从perl中的字符串中删除多行

时间:2018-12-17 14:00:16

标签: string perl newline

我有一个像这样的字符串:

city: London
Code: 123
address: 1, Napoleon
Phone: 123-123-1232

所有行都在一个字符串中,我想打印所有信息,但在一行中用分隔符。

我尝试使用以下代码:

$val =~ s/\n/\ /;

但没有。

2 个答案:

答案 0 :(得分:4)

您将要关闭,需要使用修饰符g

查看该程序的行为,第二张照片显示您想要的内容。

您可以在perldoc.perl.org上的perlre中看到所有修饰符。

use strict;
use warnings;

my $val = <<'END';
city: London
Code: 123
address: 1, Napoleon
Phone: 123-123-1232
END

print $val;

$val =~ s/\n/ /g;

print $val;

答案 1 :(得分:3)

我认为音译操作员也可以做到这一点:

$val =~ tr/\n/ /;

Transliterate进行字符的一对一映射,这意味着它不具有多用途性,但是对于诸如此类的事情非常有用。它还可以做一些很酷的事情,例如:

$val =~ tr/\n/ /s;

如果后缀“ s”是指使用任意数量的换行符并将其替换为单个空格,则在出现空格的情况下,例如“地址行2”是可选的,并且可能为空白。