我需要验证给定字符串的用户并验证它是一个有效的集合,可能是一个包含内部集合的集合。例子:
1) {1, 2, 3, 4} = valid
2) {1, 2, {3, 4}, 5} = valid
3) 1, 2, 3, 4 = invalid (missing brackets)
4) {1, 2, {3, 4, 5} = invalid (missing inner bracket)
这是我正在使用的正则表达式(为了便于阅读而分解):
String elementSeparator = "(,\\s)?";
String validElement = "(\\{?[A-Za-z0-9]*\\}?" + elementSeparator + ")*";
String regex = "^\\{" + validElement + "\\}$";
目前它接受带有可选的开始和结束括号的集合,但我需要它只接受它们都在那里,而不是如果内部集合缺少括号。在我当前的实现中,第 4 个示例被接受为有效集合。
我怎样才能做到这一点?