Wenn Sie alles außer Buchstaben anpassen möchten, sollten Sie sich die Unicode-Eigenschaften ansehen.
\p{L}
ist eine beliebige Art von Buchstaben aus einer beliebigen Sprache
Wenn Sie stattdessen ein großes "P" verwenden, ist dies die Negation, also würde \P{L}
mit allem übereinstimmen, das kein Buchstabe ist.
\d
oder \p{Nd}
sind übereinstimmende Ziffern
So würde Ihr Ausdruck im modernen Unicode-Stil so aussehen
Verwenden Sie eine negierte Zeichenklasse
%Vor%oder negierte Eigenschaften
%Vor% Als nächstes stimmt matches()
mit dem Ausdruck gegen die vollständige Zeichenfolge überein, sodass Ihr Ausdruck nur mit genau einem Zeichen in der Zeichenfolge wahr ist. Sie müssten also einen Quantifizierer hinzufügen:
gibt true zurück, wenn die vollständige Zeichenfolge nur nicht-alphanumerische Zeichen und mindestens eine von ihnen enthält.
Sagen wir, dass Sie sicherstellen wollen, dass keine Strings das _-Symbol in sich tragen, dann würden Sie einfach so etwas verwenden.
%Vor%