string.split не работает, если в строке присутствует логический оператор - PullRequest
0 голосов
/ 14 июля 2020

У меня есть строка ">= 50.80" Я пытаюсь разделить логический оператор и значение с плавающей запятой, используя ниже

val result = ">= 50.80"
val Pattern = "(<[=>]?|==|>=?|\\&\\&|\\|\\|)".r
val Pattern(operator) = result
println(operator)

Ошибка:

Исключение в потоке «main» scala .MatchError:> = 50.80 (из класса java .lang.String).

1 Ответ

1 голос
/ 14 июля 2020

Согласно этот ответ , для сохранения разделителей можно использовать отрицательный просмотр назад и вперед.

val result = ">= 50.80"
val str_split = result.split("(?<=(<[=>]?|==|>=|\\&\\&|\\|\\|))|(?=(<[=>]?|==|>=|\\&\\&|\\|\\|))")

for (v <- str_split) {
  println(v)
}
...