正则表达式获取Scala中最后一个分隔线后面的数字

BAR*_*ATH 1 regex parsing scala

我的路线是 889¦20457892¦955

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

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

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

Wik*_*żew 5

你可以用

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

这里,

  • (?<=¦) - 之后的位置 ¦
  • \d+ - 1+位数
  • $ - 字符串结尾.

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

println(str.split('¦').last)
Run Code Online (Sandbox Code Playgroud)

请参阅Scala演示