Захват повторяющихся групп чисел с помощью регулярных выражений в Java - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть один или несколько телефонных номеров в строке. Они разделены пробелами. Как я могу записать эти числа в группы, без пробелов? И я не хочу использовать сплит.

Ответы [ 4 ]

2 голосов
/ 03 февраля 2012

Попробуйте String.split() метод.

String []numbers=string.split(" ");
1 голос
/ 03 февраля 2012

Если вы должны использовать регулярное выражение. Вы можете попробовать

String phoneNumbers = "2398989 1289813 9823981 1989213";
Pattern pattern = Pattern.compile("(\\d{7})");
Matcher matcher = pattern.matcher(phoneNumbers);

while (matcher.find()) {
    System.out.println(matcher.group(0));
}

Кстати, string.split также принимает регулярные выражения.

1 голос
/ 03 февраля 2012

Итак, вы ищете что-то, что можно разделить на пробелы.Это регулярное выражение, которое я бы использовал:

([^ ]+)

Возможно, лучше использовать этот вариант:

([^\s]+)

Поскольку это будет включать любые пробельные символы (пробел, табуляция, NL, FF, VT, CR).

Тем не менее, я согласен с остальными комментаторами, что ваш выбор для split () - ваш лучший выбор ...

Вот пример регулярного выражения .

1 голос
/ 03 февраля 2012

Если вам нужно использовать регулярное выражение и все номера телефонов являются цифрами (без других символов).

Попробуйте этот код:

    String phone = "11111 22222 33333 44444";
    String regex = "(\\d+)";
    Matcher m = Pattern.compile(regex).matcher(phone);
    while(m.find())
        System.out.println(m.group(0));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...