【发布时间】:2012-11-14 05:42:15
【问题描述】:
我正在尝试使用各种字符作为分隔符来拆分字符串,并将这些分隔符保留在它们自己的数组索引中。例如说我要拆分字符串:
如果 (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 中实现吗? 谢谢
【问题讨论】:
标签: java regex split delimiter