2011-02-18 59 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非法字符存在,即在串好。