文字列を指定したユーザーを検証し、それが有効なセット、おそらく内部セットを含むセットであることを検証する必要があります。例:
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番目の例が有効なセットとして受け入れられています。
どうすればこれを達成できますか?