本帖最后由 zhuhezan 于 2011-01-05 21:24:17 编辑

解决方案 »

  1.   

    \b 单词边界,顾名思义,就是要求它的一侧是组成单词的字符,另一侧不是^h[a-z]{1,4}\\b[a-z]{1,5}
    这个正则要求\b所在位置两侧都是字母,不用去试,仅从正则语法角度分析,就可以知道,匹配任何字符串的结果肯定都是false的
      

  2.   


    System.out.println("hello world".matches("^h[a-z]{1,4} [a-z]{1,5}"));
     System.out.println(" ".matches("\\b"));这两句 楼主试试看 \\b 应该不匹配空格  我知道楼主是看马士兵老师的视频  估计是视频有错  System.out.println("hello world".matches("^h[a-z]{1,4}\\b.*"));这句之所以true 是 . 匹配除了\n外所有字符 当然也包括空格  你把\\b去掉试试 照常是true 
    这说明\\b 跟空格不匹配 所以 你执行的那两句 就是 false true