如何在java中按空格和一些特殊字符拆分字符串

时间:2018-02-18 15:33:10

标签: java regex

考虑字符串real :: sum 我只需将此字符串拆分为以下部分.more opr (&x NE &m),&n+1.moreopr(&xNE,{{1} },&m),&n。简而言之,我需要分割空格和一些特殊符号,如()和算术运算符。 如何在java中为split()编写正则表达式来实现这一点。

1 个答案:

答案 0 :(得分:2)

在空格或括号或操作符的两侧分割:

str.split(" |(?<=[,()+-])|(?<! )(?=[,()+-])")

输出:

String str = ".more opr (&x NE &m),&n+1";
System.out.println(Arrays.toString(str.split(" |(?<=[,()+-])|(?<! )(?=[,()+-])")));

是:

[.more, opr, (, &x, NE, &m, ), ,, &n, +, 1]

或者更清楚:

Arrays.stream(str.split(" |(?<=[,()+-])|(?<! )(?=[,()+-])")).forEach(System.out::println);

输出:

.more
opr
(
&x
NE
&m
)
,
&n
+
1