• ベストアンサー

正規表現

数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • deadlock
  • ベストアンサー率67% (59/87)
回答No.2

記号も入力OKとのことなので、 [\\p{ASCII}&&[^\"\\.]]* でどうでしょう? アスキー文字で、"と.を除外しています。 ↓のコードでは、一つ目だけがtrueです。 String regex = "^[\\p{ASCII}&&[^\"\\.]]*$"; String[] targets = { " AZaz09\\[]^@:/-;,)('&%$#!" , " AZaz09\\[]^@:/-;,)('&%$#!\"" , " AZaz09\\[]^@:/-;,)('&%$#!." , "アイウエオ" }; String target = null; for (int i = 0; i < targets.length; i++) { target = targets[i]; System.out.println(target.matches(regex) + "\t[" + target + "]"); }

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

([a-zA-Z0-9]|[^\"\.])* か 単に [^\"\.]* かなあ、ちょっと違う気がします。

関連するQ&A