是什么使scala.util.matching.regex库与java.util.regex库不同?
作为一名学习Scala的Java开发人员,我很惊讶地发现。在我看来,主要的区别在于很多Scala操作返回一个选项[String]。这就是关键的区别,还是我在这些库的使用方式上遗漏了更多的地方?请参见以下内容: 此类委托给java平台的是什么使scala.util.matching.regex库与java.util.regex库不同?,java,regex,scala,Java,Regex,Scala,作为一名学习Scala的Java开发人员,我很惊讶地发现。在我看来,主要的区别在于很多Scala操作返回一个选项[String]。这就是关键的区别,还是我在这些库的使用方式上遗漏了更多的地方?请参见以下内容: 此类委托给java平台的java.util.regex包。有关模式字符串的正则表达式语法的详细信息,请参阅java.util.regex.Pattern的文档 因此,使用的regex库是java.util.regex,因此,语法是相同的,所有缺点都是相同的 仅在Scala中,可以在三引号字
java.util.regex
包。有关模式字符串的正则表达式语法的详细信息,请参阅java.util.regex.Pattern
的文档
因此,使用的regex库是java.util.regex
,因此,语法是相同的,所有缺点都是相同的
仅在Scala中,可以在三引号字符串中使用单反斜杠
如果要比较Scala中的方法,那么会有一些差异。一个很好的方法是
findAllIn
/findAllMatchIn
和其他一些方法。这个类委托给java平台的java.util.regex
包。有关模式字符串的正则表达式语法的详细信息,请参阅java.util.regex.Pattern
的文档因此,语法是相同的。仅在Scala中,您可以对使用单个反斜杠“
-包含字符串。请阅读文档,以了解在模式匹配和其他便利性中的用法。”@som snytt为什么模式匹配和功能与java库不同?除了单个反斜杠褶皱之外,这些函数还有什么Scala特有的吗?对不起,我是指match
expressions,val r=“[ab]*”。r;“ba”匹配{case r()=>}
。可用方法的差异是因为findAllIn/findAllMatchIn性质的方法在使用Scala选项的上下文中更有意义吗?可能是为了方便起见。