在Scala中提取两个字符串之间的字符串

Cor*_*ped 3 regex scala

我有一系列像这样的字符串:

val foo = Seq("bar scala baz", "bar java baz", "bar python baz")
Run Code Online (Sandbox Code Playgroud)

我需要在两者之间提取所有内容bar,baz以便得到类似这样的内容:

val foobarbaz = Seq("scala", "java", "python")
Run Code Online (Sandbox Code Playgroud)

如何在Scala中使用正则表达式执行此操作?

elm*_*elm 6

不一定用正则表达式,考虑String条带方法,像这样,

foo.map { _.stripPrefix("bar").stripSuffix("baz").trim }
res: Seq[String] = List(scala, java, python)
Run Code Online (Sandbox Code Playgroud)


tir*_*ran 5

尝试这个

val regex = "^bar(.*)baz$".r
val foobarbaz = foo.collect { case regex(a) => a.trim }
Run Code Online (Sandbox Code Playgroud)