在java中捕获带正则表达式的重复数字组

时间:2012-02-03 02:00:50

标签: java regex parsing

我在一个字符串中有一个或多个电话号码。它们用空格隔开。如何将这些数字捕获成组,没有空格?我不想使用拆分。

4 个答案:

答案 0 :(得分:2)

尝试String.split()方法。

String []numbers=string.split(" ");

答案 1 :(得分:1)

如果你必须使用正则表达式,所有电话号码都是数字(没有其他字符)。

试试这段代码:

    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));

答案 2 :(得分:1)

所以,基本上你正在寻找用空格分割任何东西的东西。这是我使用的正则表达式:

([^ ]+)

使用这个可能是一个更好的选择:

([^\s]+)

因为这会包含任何空格字符(空格,制表符,NL,FF,VT,CR)。

但是,我同意其他评论者认为分组()是你最好的选择......

这是regex example

答案 3 :(得分:1)

如果必须使用正则表达式。你可以尝试

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也是一个正则表达式。