gpt4 book ai didi

regex - Scala 正则表达式 "starts with lowercase alphabets"不工作

转载 作者:行者123 更新时间:2023-12-02 04:57:32 25 4
gpt4 key购买 nike

val AlphabetPattern = "^([a-z]+)".r

def stringMatch(s: String) = s match {
case AlphabetPattern() => println("found")
case _ => println("not found")
}

如果我尝试,

stringMatch("hello")

我得到的是“未找到”,但我希望得到的是“找到”。

我对正则表达式的理解,

[a-z] = 在'a'到'z'的范围内
+ = 一个以上的模式
^ = 开始于

所以正则表达式 AlphabetPattern 是“所有以 a-z 范围内的一个或多个字母开头的字符串”

我肯定错过了什么,想知道什么。

最佳答案

case AlphabetPattern() 替换为 case AlphabetPattern(_) 即可。提取器模式采用一个变量,它绑定(bind)了结果。我们在这里丢弃它,但您可以使用 x 或其他任何东西。

编辑:如果您查看 docs for Regex,进一步了解 Randall 在下方的评论您会看到它有一个 unapplySeq 而不是 unapply 方法,这意味着它需要多个变量。如果你有错误的数字,它不会匹配,而是像

list match { case List(a,b,c) => a + b + c }

如果 list 没有恰好有 3 个元素,则不会匹配。

关于regex - Scala 正则表达式 "starts with lowercase alphabets"不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729989/

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