我正在尝试使用各种字符作为分隔符来拆分字符串,并将这些分隔符保留在它们自己的数组索引中。例如说我想拆分字符串:
如果 (x>1) 返回 x * 事实(x-1);
使用 '(', '>', ')', '*', '-', ';' 和 '\s' 作为分隔符。我希望输出为以下字符串数组:{"if"、"("、"x"、">"、"1"、")"、"return"、"x"、"*"、"fact "、"("、"x"、"-"、"1"、")"、";"}
到目前为止我使用的正则表达式是
split("(?=(\\w+(?=[\\s\\+\\-\\*/<(<=)>(>=)(==)(!=)=;,\\.\"\\(\\)\\[\\]\\{\\}])))")
它会在每个单词字符处拆分,无论它后面是否有一个分隔符。例如
测试 + 1
输出 {"t","e","s","t+","1"} 而不是 {"test+", "1"}
为什么即使该字符后面没有我的一个分隔符,它也会在每个字符处拆分?还有一个正则表达式,它甚至可以在 Java 中实现吗?谢谢