正则匹配

来源:互联网 发布:red hat linux 6.0 编辑:程序博客网 时间:2024/05/22 09:48

Programming scala的例子

val BookExtractorRE = """Book: title=([^,]+),\s+authors=(.+)""".rval MagazineExtractorRE = """Magazine: title=([^,]+),\s+issue=(.+)""".rval 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)      }}

几个注意的知识点

1.“”“的符号让我们可以使用原始的字符,从而不能双斜杠

2.正则表达式里的括号是 "字符抽取"组在match匹配时可以直接绑定变量,如上面就绑定了titile,issue以及authors

0 0
原创粉丝点击