risc-v中文社区

 找回密码
 立即注册
查看: 5785|回复: 0

[经验] case语句正则表达式匹配

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-8-25 10:12:02 | 显示全部楼层 |阅读模式
val BookExtractorRE = """Book: title=([^,]+),\s+authors=(.+)""".r
val MagazineExtractorRE = """Magazine: title=([^,]+),\s+issue=(.+)""".r

val catalog = List(
"Book: title=Programming Scala, authors=Dean Wampler, Alex Payne",
"Magazine: title=The New Yorker, issue=January 2009",
"Book: title=War and Peace, authors=Leo Tolstoy",
"Magazine: title=The Atlantic, issue=February 2009",
"BadData: text=Who put this here??"
)

for (item <- catalog) {
item match {
  case BookExtractorRE(title, authors) =>
     println("Book \"" + title + "\", written by " + authors)
  case MagazineExtractorRE(title, issue) =>
     println("Magazine \"" + title + "\", issue " + issue)
  case entry => println("Unrecognized entry: " + entry)
}
}
显示如下:
Book "Programming Scala", written by Dean Wampler, Alex Payne
Magazine "The New Yorker", issue January 2009
Book "War and Peace", written by Leo Tolstoy
Magazine "The Atlantic", issue February 2009
Unrecognized entry: BadData: text=Who put this here??

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-29 05:22 , Processed in 0.013737 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表