如何将 23+3*5
或 2 + 3*5
拆分为列表 List("23", "+", "3 ”、“*”、“5”)
?.
我尝试了诸如 split
、splitAt
之类的方法,但没有达到预期的结果。
我希望它在算术运算符处拆分。
最佳答案
尝试类似的事情
"2 + 4 - 3 * 5 / 7 / 3".split("(?=[+/*-])|(?<=[+/*-])").map(_.trim)
在这个特定的示例中,它为您提供:
Array(2, +, 4, -, 3, *, 5, /, 7, /, 3)
(?= )
是前瞻,(?<= )
是向后看的。本质上,它会在每个运算符之前和之后剪切字符串。请注意-
在[+/*-]
位于最后一个位置:否则它会被解释为字符范围(例如 [a-z]
)。
关于regex - Scala:标记简单算术表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57380984/