gpt4 book ai didi

regex - 在每一行的开头添加空格数(在一个字符串内)

转载 作者:行者123 更新时间:2023-12-05 00:36:30 51 4
gpt4 key购买 nike

这是对 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 中做同样的事情。不幸的是,我还没有能够做到这一点。 (很有可能,我的想法太复杂了。)

那么,对于这个问题,人们有哪些可能性呢?
谢谢你的任何回答。

最佳答案

匹配每一行的开头,也许:

$str =~ s/^/   /mg;

来自 perlre 的笔记:
  • ^ - 匹配一行的开头。
  • m - 处理多行字符串 ^$匹配字符串中任意位置的行开始和结束,而不仅仅是整个开始和结束。
  • g - 全局 - 适用于找到的每个匹配项。
  • 关于regex - 在每一行的开头添加空格数(在一个字符串内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003001/

    51 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com