繁体   English   中英

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

[英]Split a string on whitespace, numbers, and operators with regex

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

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

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

假设我有一个表达式

x+y+3+5+z

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

我想你的意思是:

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

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

我想这就是你所追求的:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM