我正在尝试编写一个正则表达式,它将检查一个字符串是否形成一组整数
ex: {1, 23, -501, 52, 2387329, 0}
到目前为止,我有:
Pattern p = [({(([0-9]+,)*[0-9]+)})]
但它似乎没有工作......有人可以帮助我吗?
谢谢!
Pattern.compile("\\{\\s*(?:\\d+(?:\\s*,\\s*\\d+\\s*)*)?\\}")
匹配围绕零个或多个逗号分隔的非负十进制整数的大括号。
\\s
匹配任何空格字符。(?:...)
仅用于分组,大括号之间的内容是有效的(十进制数字后跟(任意数量的逗号,然后是十进制数字))可选。
我不知道你用的是什么符号
[({(([0-9]+,)*[0-9]+)})]
但它肯定不会匹配空集,也不会匹配逗号后带有空格的任何内容。
试试这个正则表达式
"\\{((-?\\d+), ?)*-?\\d+}"
试试这个。
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());
}