当字符串中存在逻辑运算符时,string.split不起作用

当字符串中存在逻辑运算符时,string.split不起作用,string,scala,split,String,Scala,Split,我有一个字符串“>=50.80”我正在尝试使用下面的方法拆分逻辑运算符和浮点值 val result = ">= 50.80" val Pattern = "(<[=>]?|==|>=?|\\&\\&|\\|\\|)".r val Pattern(operator) = result println(operator) val result=“>=50.80” val Pattern=“(]?|==|>=?|\&\

我有一个字符串
“>=50.80”
我正在尝试使用下面的方法拆分逻辑运算符和浮点值

val result = ">= 50.80"
val Pattern = "(<[=>]?|==|>=?|\\&\\&|\\|\\|)".r
val Pattern(operator) = result
println(operator)
val result=“>=50.80”
val Pattern=“(]?|==|>=?|\&\&&&\\\\\\\\\\\\\\\)”。r
val模式(运算符)=结果
println(操作员)
错误:

线程“main”scala.MatchError中出现异常:>=50.80(属于java.lang.String类)

根据,可以利用负的lookback和lookahead来保留分隔符

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

for (v <- str_split) {
  println(v)
}
val result=“>=50.80”
val str|u split=result.split((?=\\&\\\&\&\\\\\\\\\\\\\\\\\\))(?=(?=(]?\\==\\\>=\\\\\&\\\\\\\\\\\))

对于(v)什么不起作用?它在
=
上拆分,因此它将被拆分为一个数组,如
[“”,“50.80”]
,使索引
0
成为空字符串…?好的。我犯了一个错误。我想拆分为[“>=”,“50.80”]。我想支持多个逻辑运算符,如
、==、
。有时逻辑运算符和浮点值之间不会有空格