3

すべての数字、文字、およびすべての句読記号(ピリオド、コンマ、疑問符、感嘆符、コロンなど)にも一致する正規表現が必要です。

文字列は少なくとも1文字の長さである必要がありますが、それを超える任意の長さにすることができます。

出来ますか?

4

3 に答える 3

2

試してみる\\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

于 2012-12-03T00:02:28.463 に答える
1

よく理解できれば簡単なはずです。してみてください:

([^\s]+)

この正規表現は、スペースではなく、任意の文字の1つ以上のオカレンスに一致します。これは、任意の文字列を照合(および再利用)する最も簡単な方法です。正規表現で括弧が何を意味するかはすでにご存知かもしれません。それらは後方参照、つまり後で一致した文字列を再利用するために使用されます。

于 2012-12-02T23:59:45.933 に答える
1

キャラクタークラスを見ることから始めます

http://www.regular-expressions.info/charclass.html

例:

[A-Za-z_0-9]*

アスキーの標準文字にアンダースコアを加えたものと一致します。

セットに希望の句読点を追加できます。

\ wを使用して任意の単語文字に一致させることができ、使用する正規表現の実装によっては、Unicode文字にも一致する場合があります。

もう1つのアプローチは、一致させたくないものを決定することです。空白ではない文字列を照合する場合は、次を使用できます。

\S*
于 2012-12-03T00:02:53.720 に答える