使用正则表达式在空格,数字和运算符上拆分字符串

时间:2010-12-11 21:36:53

标签: java regex

我想知道是否可以在空格上拆分字符串,并避免使用所有数字,空格和运算符,例如+和 -

这就是我所拥有的,但我认为这是不正确的

  String [] temp = expression.split("[ \\+ -][0-9] ");

假设我有一个表达式

x+y+3+5+z

我想摆脱其他一切,只将x,y和z放入数组

2 个答案:

答案 0 :(得分:2)

我认为你的意思是:

String[] temp = expression.split("[\\s0-9+-]+");

这会在空格上分割,0到9,+-。请注意,字符出现在单个字符类中,而不是多个单独的字符类。此外-不需要在此处转义,因为它位于字符类的末尾。

答案 1 :(得分:1)

我认为这就是你所追求的:

String[] tmp = expression.split("[^a-zA-Z]+");

应将分隔符视为任何不是字母序列的

测试运行

public class foo {
    static public void main(String[] args) {
        String[] res = args[0].split("[^a-zA-Z]+");
        for (String r: res) {
            System.out.println(r);
        }
    }
}

% javac foo.java
% java foo x+y+3+5+z
x
y
z