gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:56:18 24 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您会看到它有一个 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/

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