Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Scala:使用正则表达式提取字符串的一部分_Regex_Scala - Fatal编程技术网

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

Regex Scala:使用正则表达式提取字符串的一部分,regex,scala,Regex,Scala,我有一个非常简单的字符串,如下所示: "Some(1234)" 我想从中提取“1234”。我怎么做 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 把你的正则表达式换成你需要的

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

"Some(1234)"
我想从中提取“1234”。我怎么做

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

把你的正则表达式换成你需要的<代码>\d+仅将其限制为数字。

Scala 2.13
开始,可以通过以下方式对
字符串进行模式匹配:


还请注意,如果要从其
toString
版本中提取
选项[Int]
,则可以将插值提取与
匹配语句一起使用:

x match { case s"Some($number)" => number.toIntOption case _ => None }
// x = "Some(1234)"     =>     Option[Int] = Some(1234)
// x = "Some(1S3R)"     =>     Option[Int] = None
// x = "None"           =>     Option[Int] = None

如果不匹配怎么办?将抛出
scala.MatchError
val s"Some($number)" = "Some(1234)"
// number: String = 1234
x match { case s"Some($number)" => number.toIntOption case _ => None }
// x = "Some(1234)"     =>     Option[Int] = Some(1234)
// x = "Some(1S3R)"     =>     Option[Int] = None
// x = "None"           =>     Option[Int] = None