Erhalten Sie eindeutige Ergebnisse für Regex-Matcher (ohne Verwendung von Karten oder Listen)

Gibt es eine Möglichkeit, nur die eindeutigen Übereinstimmungen zu erhalten? Ich möchte, dass die Matcher-Ausgabe sofort eindeutig ist, ohne dass nach dem Matching eine Liste oder eine Karte verwendet wird.

Beispiel Input / Output:

String input = "This is a question from [userName] about finding unique regex matches for [inputString] without using any lists or maps. -[userName].";
Pattern pattern = Pattern.compile("\\[[^\\[\\]]*\\]");
Matcher matcher = pattern.matcher(rawText);
while (matcher.find()) {
    String tokenName = matcher.group(0);
    System.out.println(tokenName);
}

Dies gibt Folgendes aus:

[userName]
[inputString]
[userName]

Aber ich möchte, dass es Folgendes ausgibt:

[userName]
[inputString]

Antworten auf die Frage(1)

Ihre Antwort auf die Frage