regex - Scala:标记简单算术表达式

标签 regex scala split tokenize calculation

如何将 23+3*52 + 3*5 拆分为列表 List("23", "+", "3 ”、“*”、“5”)?.

我尝试了诸如 splitsplitAt 之类的方法,但没有达到预期的结果。

我希望它在算术运算符处拆分。

最佳答案

尝试类似的事情

"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/

相关文章:

c# - C# 中的字符串操作以递增数字

scala - 当 DAO 包含操作时减少测试开销

javascript - 用正则表达式拆分驼峰式字符串

C 函数用于分隔字符数组中的字符串

xml - 正则表达式匹配不包含其他标签的xml标签

ruby-on-rails - 尝试在 ruby​​ 中使用正则表达式来查找特定字符

scala - 4-Tuple Sequence to Map of Maps

eclipse - 使用 Eclipse 为 Scala 创建新的 SBT 项目

c# - 优化的通用列表拆分

java - 删除两个字符之间的子字符串(java)