我试图从字符串中删除所有空行。我的字符串是一个有很多随机空行的段落,我正在尝试清理它。
例如:
this is an example
lots of empty
lines
in the paragraph
应该是
this is an example
lots of empty
lines
in the paragraph
我目前使用的代码只返回随机数字..就好像它在做一个字数或其他东西。
例如
output = 567
或
output = 221
这就是所有它返回,没有单词,没有段落
我的代码看起来像这样
首先假设匹配然后打印匹配后的所有单词 然后我想删除所有空行以清理输出
my ($shorten) = $origin =~ /word to match\s*(.*)$/s;
my ($cleanlines) = $shorten =~ s/\n//g;
$ shorten部分完美运行,但$ cleanlines部分无效。
答案 0 :(得分:3)
这一行
my ($cleanlines) = $shorten =~ s/\n//g;
删除$shorten
中的所有换行符并存储$cleanlines
如果您想从$shorten
删除空行,则必须改为编写
(my $cleanlines = $shorten) =~ s/^\s*\n//gm;
答案 1 :(得分:0)
my ($shorten) = $origin =~ /word to match\s*(.*)$/s;
之所以有效,是因为您在正则表达式中使用了捕获括号,(*.)
匹配的任何内容最终都在$shorten
中。
要从字符串中删除空行,可以使用这个简单的正则表达式:
$shorten =~ s/\n+\n/g;
替换将在$shorten
变量上执行。如果你想保持$shorten
不变并在新变量中清理行,那么只需将$shorten
的内容复制到一个新变量并对其执行替换:
my $cleanlines = $shorten;
$cleanlines =~ s/\n+/\n/g;