Sie können keine Anzahl von Vorkommen innerhalb einer Zeichenklasse angeben, da dieses Konstrukt zum Definieren eines bestimmten Zeichentyps verwendet wird. Innerhalb [...]
werden die *
, +
, ?
, {1,2}
als Literalsymbole behandelt.
Wenn Sie müssen nur mehrere durch Komma getrennte Wörter in Klammern entsprechen, verwenden
\w*\(\w*(?:,\w*)*\)
oder mit obligatorischen ersten Wort:
\w+\(\w*(?:,\w*)*\)
^
die regex demo anzeigen (oder this one).
Verwenden Sie in Java String re = "\\w+\\(\\w*(?:,\\w*)*\\)";
.
Musterdetails:
\w*
- 0+ Wort Zeichen
\(
- ein Literal (
\w*
- 0+ Wort Zeichen
(?:,\w*)*
- null oder mehr Sequenzen (Die und (...)
definieren Sequenzen oder alternative Sequenzen, wenn |
innerhalb der Gruppen verwendet wird) von einem Komma und 0+ Wort verkohlt
\)
- ein Literal )
'[,] {2}' zwei oder mehr aufeinanderfolgenden Kommas. Siehe [Java RegEx Quantifiers] (https://docs.oracle.com/javase/tutorial/essential/regex/quant.html). – nbrooks