Scala:使用正则表达式提取字符串的一部分

时间:2013-12-07 20:26:43

标签: regex scala

我有一个非常简单的字符串,如下所示:

"Some(1234)"

我想从中提取“1234”。我该怎么办?

3 个答案:

答案 0 :(得分:5)

val s = "Some(1234)"
//s: java.lang.String = Some(1234)

val Pattern = """Some\((\d+)\)""".r
//Pattern: scala.util.matching.Regex = Some\((\d+)\)

val Pattern(number) = s
//number: String = 1234

根据您的需要切换正则表达式。 \d+仅限数字。

答案 1 :(得分:3)

scala> val s = "Some(1234)"
s: String = Some(1234)

scala> val nums = "[0-9]".r
nums: scala.util.matching.Regex = [0-9]

scala> nums.findAllIn(s).mkString
res0: String = 1234

答案 2 :(得分:1)

<div> <Document file = {"https://ipfs.io/ipfs/" + this.state.IPFSlink} onLoadSuccess={this.onDocumentLoadSuccess} > <Page pageNumber={pageNumber} /> </Document> </div> 开始,可以按unapplying a string interpolator模式匹配Scala 2.13 s:

String

还要注意,如果是从val s"Some($number)" = "Some(1234)" // number: String = 1234 版本中提取Option[Int],则可以对toString使用插值提取:

match statement