1.

String string="    我是     一只小小鸟     ";
String string2=" 我是 一只小小鸟";
String blank=" abc";
String pattern1="^\\s+";
Pattern pattern=Pattern.compile(pattern1);
Matcher matcher=pattern.matcher(string);


if (matcher.find()) {
System.out.println(string.replaceAll(pattern1, ""));
}else {
System.out.println("failed-------");
}

运行结果:我是     一只小小鸟     

上面的代码如果屏蔽了matcher.find(),就直接报错了。为什么正则表达式必须要加这个matcher.find()呢?不解

还有结果,注意到我是后面的几个空格是没有被替换的,所以我们的正则的开始符号^,指的是连续的字符开始。

2.学习正则的话下面的网站很好

(1)正则表达式30分钟入门

http://www.jb51.net/tools/zhengze.html  

(2)博客

http://blog.csdn.net/shangboerds/article/details/7632217