2011-02-18 49 views
5

我想指定一個正則表達式來查找在String中是否有非字母非數字字符。Java簡單正則表達式

基本上我希望它以任何順序接受[a-z][A-Z][0-9]任意組合..i.e "2a4A44awA"應該是有效的。

我該怎麼做?

回答

7

相反的:

[a-z][A-Z][0-9] 

如同:

[a-zA-Z0-9]+ 

從API:如果非法字符存在

Greedy quantifiers 
X? X, once or not at all 
X* X, zero or more times 
X+ X, one or more times 
X{n} X, exactly n times 
X{n,} X, at least n times 
X{n,m} X, at least n but not more than m times 
+0

哦,加號是我失蹤....謝謝... – mixkat 2011-02-18 14:04:02

+1

@Mixkat,我編輯的答案包括貪婪量詞列表。 – jzd 2011-02-18 14:05:50

3
String s = ".... ; 

System.out.println(s.matches(".*[^a-zA-z0-9].*")); 

返回true。

編輯:但從JZD第一個答案是更好:

s.matches("[a-zA-Z0-9]+"); 

返回true非法字符存在,即在串好。