0

我正在尝试编写一个正则表达式,它将检查一个字符串是否形成一组整数

ex: {1, 23, -501, 52, 2387329, 0}

到目前为止,我有:

Pattern p = [({(([0-9]+,)*[0-9]+)})]

但它似乎没有工作......有人可以帮助我吗?

谢谢!

4

3 回答 3

1
Pattern.compile("\\{\\s*(?:\\d+(?:\\s*,\\s*\\d+\\s*)*)?\\}")

匹配围绕零个或多个逗号分隔的非负十进制整数的大括号。

\\s匹配任何空格字符。(?:...)仅用于分组,大括号之间的内容是有效的(十进制数字后跟(任意数量的逗号,然后是十进制数字))可选。

我不知道你用的是什么符号

[({(([0-9]+,)*[0-9]+)})]

但它肯定不会匹配空集,也不会匹配逗号后带有空格的任何内容。

于 2013-03-24T03:31:59.760 回答
0

试试这个正则表达式

"\\{((-?\\d+), ?)*-?\\d+}"
于 2013-03-24T03:53:46.093 回答
0

试试这个。

        String data = "{1, 23, -501, 52, 2387329, 0}";
    Pattern pattern = Pattern.compile("\\{(\\s?-?\\d+?\\,?\\s?)+?\\}");

    Matcher matcher = pattern.matcher(data);
    while (matcher.find()) {
        // Indicates match is found. Do further processing
        System.out.println(matcher.group());
    }
于 2013-03-24T04:56:35.747 回答