Разбить строку на пробел, числа и операторы с помощью регулярного выражения - PullRequest
5 голосов
/ 12 декабря 2010

Мне было интересно, можно ли разбить строку на пробел и избежать всех чисел, пробелов и таких операторов, как + и -

Это то, что у меня есть, но я считаю, что это неправильно

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

Предположим, у меня есть выражение

x+y+3+5+z

Я хочу избавиться от всего остального и поместить в массив только x, y и z

Ответы [ 2 ]

2 голосов
/ 12 декабря 2010

Я думаю, вы имеете в виду это:

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

Это разделяется на пробелы, от 0 до 9, + и -. Обратите внимание, что символы появляются в одном классе символов, а не в нескольких отдельных классах символов. Также - здесь не нужно экранировать, потому что он находится в конце класса символов.

1 голос
/ 12 декабря 2010

Я думаю, это то, что вы ищете:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...