我需要拆分包含基本数学表达式的字符串,例如:
或
分隔符是+ - * /()和空格,我需要它们作为独立的标记。
基本上结果应该像这样:
...
我阅读了很多有关类似问题的问题,其中分隔符较少且常见答案是使用零空间正向预查和后顾。
像这样:
X代表分隔符,但将它们放在类中如下所示:
不能按所需方式工作。
那么我该如何格式化分隔符以使拆分按我的要求工作?
--- 更新 ---
单词类字符和更长的组合不应被拆分。
例如“ab”“c1”或“12”。
换句话说,我需要与StringTokenizer相同的结果,给出参数“-+*/() ”和true。
"(a+b)*c"
或
" (a - c) / d"
分隔符是+ - * /()和空格,我需要它们作为独立的标记。
基本上结果应该像这样:
"("
"a"
"+"
"b"
")"
"*"
"c"
对于第二个例子:" "
"("
"a"
" "
"-"
...
我阅读了很多有关类似问题的问题,其中分隔符较少且常见答案是使用零空间正向预查和后顾。
像这样:
(?<=X | ?=X)
X代表分隔符,但将它们放在类中如下所示:
[\\Q+-*()\\E/\\s]
不能按所需方式工作。
那么我该如何格式化分隔符以使拆分按我的要求工作?
--- 更新 ---
单词类字符和更长的组合不应被拆分。
例如“ab”“c1”或“12”。
换句话说,我需要与StringTokenizer相同的结果,给出参数“-+*/() ”和true。
a+ab-c1+12
应该如何分割?ab
是一个标记还是由a*b
组成的一组标记,这部分的结果应该是a
*
b
吗?你的字符串中是否可能包含数字? - Pshemo