gpt4 book ai didi

scala - 在 Scala 中扩展字符串中转义序列的惯用方法

转载 作者:行者123 更新时间:2023-12-02 05:04:41 28 4
gpt4 key购买 nike

我有一个包含(非 Scala)转义序列的输入字符串,例如 \n\s\x20ac;\{$var}。我想通过将普通字符复制到输出,并对每个转义序列应用一些处理,将处理结果复制到输出来创建一个输出字符串。处理转义序列和检测其结束位置的规则都仅取决于紧跟在反斜杠之后的字符。

在 Scala 中实现这一目标的惯用方法是什么?

最佳答案

这个怎么样:

val r = """\\[ns]|\\x[a-f0-9]{4};|\\\{\$[a-z][a-z_0-9]+\}""".r
val result = r.replaceAllIn(targetString, m =>
// your logic. `m` is a Match. Use it to decide what to replace with.
)

看看Regex

您甚至可以更进一步,使用漂亮的模式匹配:

import scala.util.matching.Regex.Match
def handle(m: Match) = m match {
case Match("""\n""") => // do stuff
case _ => // etc.
}

val result = r.replaceAllIn(targetString, handle _)

关于scala - 在 Scala 中扩展字符串中转义序列的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451347/

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