4 Stimmen

Java-basierter regulärer Ausdruck, der alphanumerische Zeichen und ' zulässt, und

Ich bin neu bei regulären Ausdrücken in Java und muss überprüfen, ob eine Zeichenkette nur alphanumerische Zeichen, Kommas, Apostrophe und Punkte enthält. Alles andere sollte mit false gleichgesetzt werden.

Kann mir jemand einen Tipp geben?

Ich habe dies im Moment, die ich glaube, tut alphanumerische für jedes Zeichen in der Zeichenfolge:

 Pattern p = Pattern.compile("^[a-zA-Z0-9_\\s]{1," + s.length() + "}");

Danke

Herr Albany Caxton

10voto

aioobe Punkte 397211

Ich bin neu in regulären Ausdrücken in Java und ich brauche, um zu überprüfen, ob eine Zeichenfolge hat alphanumerische Zeichen , Kommas , Apostrophe y Punktierungen (nur Zeiträume).

Ich schlage vor, Sie verwenden die \p{Alnum} Klasse, um alphanumerische Zeichen abzugleichen:

Pattern p = Pattern.compile("[\\p{Alnum},.']*");

(Mir ist aufgefallen, dass Sie auch \s in Ihrem aktuellen Muster. Wenn Sie auch Leerraum zulassen wollen, fügen Sie einfach \s in der Zeichenklasse).

Von Dokumentation von Pattern :

[...]

\p{Alnum} Ein alphanumerisches Zeichen: [\p{Alpha}\p{Digit}]

[...]


Sie müssen nicht enthalten ^ y {1, ...} . Verwenden Sie einfach Methoden wie Matcher.matches o String.matches um das vollständige Muster zu finden.

Beachten Sie auch, dass Sie nicht entkommen müssen . innerhalb einer Zeichenklasse ( [ ... ] ).

1voto

Herring Punkte 173
Pattern p = Pattern.compile("^[a-zA-Z0-9_\\s\\.,]{1," + s.length() + "}$");

0voto

Bohemian Punkte 386825

Halten Sie es einfach:

String x = "some string";
boolean matches = x.matches("^[\\w.,']*$");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X