首页 > 解决方案 > 用于获取 Scala 中行的最后一个分隔符之后的数字的正则表达式

问题描述

我的线是889¦20457892¦955

我想得到955输出,这是我的代码,但它给出None了结果

val pattern = "(^¦*)$\\d+".r
val str = "889¦20457892¦955"
println(pattern findFirstIn str)

这是正确的正则表达式吗?

标签: regexscalaparsing

解决方案


您可以使用

val pattern = """(?<=¦)\d+$""".r
val str = "889¦20457892¦955"
println(pattern findFirstIn str)

这里,

  • (?<=¦)- 紧随其后的位置¦
  • \d+- 1+ 位数
  • $- 字符串结束。

¦或者,您可以只使用char拆分并获取最后一项:

println(str.split('¦').last)

查看Scala 演示


推荐阅读