当字符串中存在逻辑运算符时,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”]。我想支持多个逻辑运算符,如、==、
。有时逻辑运算符和浮点值之间不会有空格