2013-07-05 25 views
6

Fasulye içinde değişken ismim var. Sadece alfanümerik kabul etmek için @Pattern doğrulama eklemek istiyorum.@ Alfasayısal dizgi için dolgu - Çekirdek doğrulama

Şu anda buna sahibim.

@NotNull 
@Pattern(regexp = "{A-Za-z0-9}*") 
String name; 

Ama hata Invalid regular expression. Ben [A-Za-z0-9] çalıştı olduğunu. Ama bu da çalışmıyor. Hata yok. Herhangi bir geçerli girişi başarısız olarak gösterir.

cevap

19

Bu desen deneyin: ^[A-Za-z0-9]*$

veya ^[A-Za-z0-9]+$ boş sonuçları önlemek için. Eğer bir dize yalnızca belirli karakterleri içerdiğini kontrol etmek istiyorsanız

, sen çapa senin desen tüm dizeyle eşleşir emin olmak için (dize sonu için dizenin başından için ^, $) eklemelisiniz.

Küme parantezleri bir miktar örnek yazmak için sadece şunlardır: i iki a istiyorum: İçinde harfleri koyamazsınız
a{2}
. \p{L}, \p{Greek}, \p{Arabian}, yani

3

Ayrıca, küme parantezi içine kullanılabilecek bir karakter sınıfını kullanabilir ...: Eğer unicode karakter sınıflarını kullandığınızda kıvrımlı parantez içindeki harfler karşılayabilen tek durumlardır alnum. Örneğin 1 ve 32 karakter arasında uzunluğa sahip olan bir alfanümerik karakter için dahil:

@Pattern(regexp = "^[\\p{Alnum}]{1,32}$") 

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

bkz
İlgili konular