用于拆分特定运算符的正则表达式,例如(^,*,>,<,< =,> =,+, - ,!,$)?

时间:2018-02-21 23:41:02

标签: java regex split

尝试创建一个特定方法,将公式拆分为两个数组,一个包含运算符的数组和包含数值的数组。

运算符包括:(^,*,>,<,< =,> =,+, - ,!,$) 例: 字符串公式=" 17-(23 + 4)* 5 $"

我目前正在使用String split功能。我使用了正则表达式(" \ s * [^ 0-9] + \ s *");并且它为valueArray工作。

如果有人可以让我知道我应该用什么正则表达式来分割上面列出的运算符,那就太棒了。

1 个答案:

答案 0 :(得分:0)

要将数值分组为数字,可以使用正则表达式:

(\s*\d+\s*)

请注意,()是实际正则表达式模式本身的一部分。

要获得符号,您可以使用基本上只是反向模式的符号

(\s*[^\d]\s*)

这会给你[−, (, +, ), *]。如果您希望将符号组合在一起,请使用

(\s*[^\d]\s*)

会给你[−(, +, )*]