【问题标题】:What makes scala.util.matching.regex library different from java.util.regex library?是什么让 scala.util.matching.regex 库与 java.util.regex 库不同?
【发布时间】:2016-05-06 10:51:44
【问题描述】:

作为一名学习 Scala 的 Java 开发人员,我很惊讶地发现了 separate Scala library for regular expressions。在我看来,主要区别在于许多 Scala 操作返回一个 Option[String]。这是关键区别还是我在这些库的使用方式上还缺少更多?

【问题讨论】:

  • 这个类委托给 Java 平台的 java.util.regex有关模式字符串的正则表达式语法的详细信息,请参阅java.util.regex.Pattern 的文档 - 因此,语法是相同的。就在 Scala 中,您可以使用带有 """ 封闭字符串的单反斜杠。
  • 阅读文档以了解在模式匹配中的使用以及其他便利。 scala-lang.org/api/2.11.7/#scala.util.matching.Regex
  • @som-snytt 为什么模式匹配和功能与 java 库有什么不同?除了单个反斜杠皱纹之外,这些函数还有什么 Scala 特有的吗?
  • 对不起,我的意思是 match 表达式,val r = "[ab]*".r ; "ba" match { case r() => }

标签: java regex scala


【解决方案1】:

看看scala.util.matching.Regex documentation里面写了什么:

这个类委托到Java平台的java.util.regex包。有关模式字符串的正则表达式语法的详细信息,请参阅java.util.regex.Pattern 的文档。

所以,使用的正则表达式库是java.util.regex,因此,语法是一样的,所有的缺点都是一样的。

在 Scala 中,您可以在三引号字符串中使用单反斜杠。

如果您要比较 Scala 中的方法,那么会有一些差异。一个不错的方法是findAllIn/findAllMatchIn 和其他一些方法。

【讨论】:

  • 在使用 Scala Options 的上下文中是否因为 findAllIn/findAllMatchIn 的本质方法更有意义,所以可用方法的差异?
  • 也许是为了方便。
猜你喜欢
  • 1970-01-01
  • 2010-12-07
  • 2023-03-24
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多