2016-04-08 9 views
1

was die Syntax für diese fließenden Bedingungen:Java muss Regex nur englische Zeichen sein. Anzahl und druckbare Zeichen

  • nur englische Zeichen (a-z, A-Z).
  • Zahlen 0-9.
  • Leerzeichen.
  • alle druckbaren Tastatur Zeichen (aber nur Zeichen Tastatur), zum Beispiel: [email protected]#$%^&*()_-+=;{[}]\|:',?/><,.

Freund hat mir gesagt, was ich gefordert bin auf der Suche:

plainText.replaceAll("\\p{C}", "") 

aber diese Regex auch Zeichen wie das Zeichen drucken © und andere Sprachen Zeichen.

+2

Was ist ein "Tastaturzeichen"? Kommt es nicht darauf an, was auf deiner Tastatur ist? –

Antwort

3

ist hier ein regex, dass es für Sie tun sollten:

"[\p{Alnum}\p{Punct}\s]" 

\p{Alnum}, die eine beliebige alphanumerische Zeichen (az, AZ, 0-9)

\p{Punct}, die eine der folgenden Zeichen ist: ! "# $% &‚() * +, -/:; < => @ []^_ `. {|} ~

\s die

beliebigen Leerzeichen ist 0123?

Für Ihren speziellen Fall, hier ist der Code, den ich nehme an, Sie suchen:

plainText.replaceAll("[\\p{Alnum}\\p{Punct}\\s]", "") 

Wenn Sie jemals eine regex machen müssen, ist This eine sehr nützliche Verbindung.

Verwandte Themen