s

object s
class Object
trait Matchable
class Any

Value members

Concrete methods

The simple string matcher.

The simple string matcher.

Attempts to match the input string to the given interpolated patterns via a naive globbing, that is the reverse of the simple interpolator.

Here is an example usage:

val s"Hello, $name" = "Hello, James"
println(name)  // "James"

In this example, the string "James" ends up matching the location where the pattern $name is positioned, and thus ends up bound to that variable.

Multiple matches are supported:

val s"$greeting, $name" = "Hello, James"
println(greeting)  // "Hello"
println(name)  // "James"

And the s matcher can match an arbitrary pattern within the ${} block, for example:

val TimeSplitter = "([0-9]+)[.:]([0-9]+)".r
val s"The time is ${TimeSplitter(hours, mins)}" = "The time is 10.50"
println(hours) // 10
println(mins) // 50

Here, we use the TimeSplitter regex within the s matcher, further splitting the matched string "10.50" into its constituent parts

Source:
StringContext.scala