s.stripPrefix("!!!") case _ => } 但我想知-6ren">
gpt4 book ai didi

scala - 如何匹配前缀上的字符串并获得其余部分?

转载 作者:行者123 更新时间:2023-12-03 09:53:27 26 4
gpt4 key购买 nike

我可以这样写代码:

str match {
case s if s.startsWith("!!!") => s.stripPrefix("!!!")
case _ =>
}

但我想知道有没有更好的解决方案。例如:
str match {
case "!!!" + rest => rest
case _ =>
}

最佳答案

val r = """^!!!(.*)""".r
val r(suffix) = "!!!rest of string"

所以 suffix将填充 字符串的其余部分 ,或 scala.MatchError被抛出。

一个不同的变体是:
val r = """^(!!!){0,1}(.*)""".r
val r(prefix,suffix) = ...

prefix要么匹配!!!或为空。例如
(prefix, suffix) match {
case(null, s) => "No prefix"
case _ => "Prefix"
}

上面的内容可能比您需要的要复杂一些,但值得一看 Scala 正则表达式集成的强大功能。

关于scala - 如何匹配前缀上的字符串并获得其余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724679/

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