/**Regex**/
    String regex = "[\u4e00-\u9fa5]";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher("测试");
    boolean isMatched = matcher.matches();
    System.out.println(isMatched);
为什么输出的是false?只用一个汉字的时候输出的是true.怎样才能够匹配全部都是中文?

解决方案 »

  1.   

            String regex = "[\u4e00-\u9fa5]*";
      

  2.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【igogo007】截止到2008-07-29 17:04:47的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=igogo007
      

  3.   

    正好可以把这帖顶一下。
    http://topic.csdn.net/u/20080728/11/478288d3-f383-459e-9285-c41b35e3188a.html
    看有没有更好的方法..
      

  4.   

      ^[\u4E00-\u9FA5]+$   
      

  5.   

    1.匹配是否有汉字:
            String regex = "[\u4e00-\u9fa5]";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher("测试");
            boolean isMatched = matcher.find();
            System.out.println(isMatched);
    2.匹配是否全部为汉字:        String regex = "[\u4e00-\u9fa5]*"; 
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher("测试");
            boolean isMatched = matcher.matches();
            System.out.println(isMatched);
      

  6.   

    表达式应该写成下面的
    String regex = "[\u4e00-\u9fa5]*";* 是数量词,表示0个或多个另外还要注意matcher.matches();该方法就是对字符串进行全部匹配所有表达式就不要再加^ $
      

  7.   

    可以不用正则的, /**
     * 将GBK转化为ISO-8859-1
     * 
     * @param para
     * @return
     */
    public static String gbkToIso(String str) {
    try {
    return new String(str.getBytes("GBK"), "ISO-8859-1");
    } catch (UnsupportedEncodingException e) {
    return "";
    } catch (Exception e) {
    return "";
    }
    } /**
     * 判断字符串中是否有中文
     * 
     * @param str
     * @return
     */
    public static boolean isContainChinaStr(String str) {
    if (str == null || str.length() == gbkToIso(str).length())
    return false;
    return true;
    }
      

  8.   

    str.length() == gbkToIso(str).length() 这个怎么能判断字符串中 有没中文呢?
      

  9.   

    String regex = "[\u4e00-\u9fa5]*";