すべての数字、文字、およびすべての句読記号(ピリオド、コンマ、疑問符、感嘆符、コロンなど)にも一致する正規表現が必要です。
文字列は少なくとも1文字の長さである必要がありますが、それを超える任意の長さにすることができます。
出来ますか?
試してみる\\p{Graph}+
か\\p{Print}+
@Test
public void shouldMatch()
{
assertTrue("asdf123ASFD!@#$%^&*()".matches("\\p{Graph}+"));
}
@Test
public void shouldMatchWithWhitespaces()
{
assertTrue("asdf 123 ASFD !@#$%^&*()".matches("[\\p{Graph}\\s]+"));
}
ここで詳細情報を入手できます(セクション:POSIX文字クラス(US-ASCIIのみ)):
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
よく理解できれば簡単なはずです。してみてください:
([^\s]+)
この正規表現は、スペースではなく、任意の文字の1つ以上のオカレンスに一致します。これは、任意の文字列を照合(および再利用)する最も簡単な方法です。正規表現で括弧が何を意味するかはすでにご存知かもしれません。それらは後方参照、つまり後で一致した文字列を再利用するために使用されます。
キャラクタークラスを見ることから始めます
http://www.regular-expressions.info/charclass.html
例:
[A-Za-z_0-9]*
アスキーの標準文字にアンダースコアを加えたものと一致します。
セットに希望の句読点を追加できます。
\ wを使用して任意の単語文字に一致させることができ、使用する正規表現の実装によっては、Unicode文字にも一致する場合があります。
もう1つのアプローチは、一致させたくないものを決定することです。空白ではない文字列を照合する場合は、次を使用できます。
\S*