Как разбить строку на основе знаков препинания и пробелов? - PullRequest
7 голосов
/ 09 апреля 2011

У меня есть String, который я хочу разделить на основе знаков препинания и пробелов.Каким должен быть аргумент regex для метода split()?

Ответы [ 3 ]

14 голосов
/ 09 апреля 2011

Код с добавленной обработкой странностей: (Обратите внимание, что он пропускает пустые токены в цикле вывода. Это быстро и грязно.) Вы можете добавить любые символы, которые вам нужно разделить и удалить в шаблон регулярных выражений. (tchrist прав. Эта штука ужасно реализована и работает только в некоторых очень простых случаях.)

public class SomeClass {
    public static void main(String args[]) {
        String input = "The\rquick!brown  - fox\t\tjumped?over;the,lazy\n,,..  \nsleeping___dog.";

        for (String s: input.split("[\\p{P} \\t\\n\\r]")){
            if (s.equals("")) continue;
            System.out.println(s);
        }
    }
}


INPUT:

The
quick!brown  - fox      jumped?over;the,lazy
,,..  
sleeping___dog.

OUTPUT:

The
quick
brown
fox
jumped
over
the
lazy
sleeping
dog
0 голосов
/ 09 апреля 2011

попробуйте что-то вроде этого:

String myString = "item1, item2, item3";
String[] tokens = myString.split(", ");
for (String t : tokens){
            System.out.println(t);
        }

/*output
item1
item2
item3
*/
0 голосов
/ 09 апреля 2011
str.split(" ,.!?;") 

было бы хорошим началом для английского.Вам нужно улучшить его, основываясь на том, что вы видите в своих данных, и на каком языке вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...