[abc]表示a、b、c中任意一个,也可以写为[a,b,c],但前一种写法更常见
[^abc]表示除了a、b、c,其他的都可以
[A-z]表示所有的字母
[a-z]表示小写字母
.表示任意字符,但是如果想表示这个位置就是.这个符号,那么就使用转义字符\.(注意java中也有转义字符,所以在java中使用时应该写为\\.)
\d表示数字[0-9]
\D表示非数字[^0-9]
\s表示空白字符,一个空格或一个Tab都可以(注意:四个空格不行,四个空格和一个Tab是不同的)
\S表示非空白字符[^\s]
\w表示单词字符[A-z_0-9](字母,下滑线,数字)
\W表示非单词字符[^\w]
x?表示x是0次或1次
x*表示x是0次或多次
x+表示x是一次或多次 例如:用\d+可以判断是否是纯数字
x{n}表示x恰好n次 例如:\d{7}表示必须是7位数字
x{n,}表示x至少是n次
x{n,m}表示x至少n次,至多m次
XY表示X后跟的是Y
X|Y表示X或Y 例如:想输入@.com或@.cn 可以写为:@((\\.com)|(\\.n))
判断一个邮箱地址是否是个合法的地址,可以写为:\\w+@\\w+(\\.\\w+){1,2}
微博中使用正则表达式查找@的用户
Pattern p=Pattern.compile("@\\w+\\s");
String str="@tom @jerry @rose 这是我的邮箱,给我发邮件哦!1234@sina.com";
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
匹配汉字[\u4e00-\u9fa5]但这个不太完整,具体可参考http://nuysoft.iteye.com/blog/1217898