0

フルネームとして入力するテキストボックスがあります。

ユーザーが として入力するとMy Name、エラーは発生しません。ただし、ユーザーが入力を として入力するとMy Name Is、エラーが発生します。

私が持っている正規表現は

([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)

実際に欲しいのは、テキストが持つべきものです

only (a-z OR A-Z) AND white space...

デモ入力は

  1. 私の名前は XYZ PQR STU です
  2. 私の名前はXYZです
  3. XYZ PQR STU

正規表現を使用してこれを行うにはどうすればよいですか?

更新 1

私は使っている

    Pattern p = Pattern.compile("[a-zA-Z\\s]");
    Matcher m = p.matcher("DummyName");
    boolean matchFound = m.matches();

それでも私matchFoundFALSE

4

2 に答える 2

3

\sは空白用です。大文字と小文字だけでなく、文字クラスで空白を許可する場合は、[a-zA-Z\s].

于 2012-07-06T23:23:42.493 に答える
2

これを試してください^[a-zA-Z]+(?:\s+[a-zA-Z]+)*$。好みに合わせて少し調整できます。これ?:は、グループがキャプチャしないようにすることです。これは、文字列全体をテストするだけの場合は必要ありません。^入力テキストの開始と$終了に一致します。直接必要ではありませんmatches()が、適切な保護手段です。

于 2012-07-06T23:41:57.747 に答える