我想在 Groovy 中缩进多行字符串,但我无法找出正确的 RegEx 语法/或 Regex 标志来实现这一点。
到目前为止,这是我尝试过的:
def s="""This
is
multiline
"""
println s.replaceAll('/(.*)/'," \1")
println s.replaceAll('/^/'," ")
println s.replaceAll('(?m)/^/'," \1")
println s.replaceAll('(?m)/(.*)/'," \1")
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这些没有按预期工作。
唯一有效的是这个块:
def indented = ""
s.eachLine {
indented = indented + " " + it + "\n"
}
println indented
Run Code Online (Sandbox Code Playgroud)
有没有更短/更有效的方法来缩进 Groovy 中字符串的所有行?
您需要将(?m)指令放在正则表达式中;并且模式是斜杠字符串,而不是内部带有斜杠的单引号字符串:
s.replaceAll(/(?m)^/, " ")
Run Code Online (Sandbox Code Playgroud)
你可以拆分和加入 - 不知道它是否更有效,但更短
def s="""This
is
multiline
"""
def indent = " "
println indent + s.split("\\n").join("\n" + indent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3368 次 |
| 最近记录: |