【发布时间】:2011-11-04 07:20:47
【问题描述】:
这是Perl: add character to begin of a line 的后续问题。
情况
在现有的 Perl 脚本中,我有一个合理的长字符串 $str,其中包含未知数量的换行符 (\n)。现在字符串末尾有换行符。
$str = "Hello\nWorld.\nHow is it going?"
问题
我想在字符串中每行的开头添加一定数量的(恒定)空格:(在本例中为 3)
$str = " Hello\n World.\n How is it going?"
第一种方法 我的第一种方法是以下 RegEx
$str =~ s/(.*?\n)/ \1/g;
并缓存最后一行,不被新行终止
$str =~ s/(.*)\n(.*)?$/\1\n \2/g;
愿望
第一的。以上几行完美地工作,完全符合我的意图。但。我知道,RegEx 很强大,因此我很确定,一个人可以在短短的 RegEx 中做同样的事情。不幸的是,我还没有做到这一点。 (很可能,我的想法太复杂了。)
那么,这个问题有哪些可能性呢?
感谢您的任何回答。
【问题讨论】: