- ベストアンサー
正規表現
数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。
- みんなの回答 (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]|[^\"\.])* か 単に [^\"\.]* かなあ、ちょっと違う気がします。