@张三:  我想用正则取得   张三   这两个字,其中@ 和:都是英文的  
求高手指教 正则的写法
我自己写了个  \\@[^@:]+\\:  似乎不对,取得值中包括了@ 和:

解决方案 »

  1.   

            String str = "@张三:";
            Pattern pattern = Pattern.compile("@([^::]+)");
            Matcher matcher = pattern.matcher(str);
            if (matcher.find()) {
                System.out.println(matcher.group(1));
            }
      

  2.   

    这个用环视       String str = "@张三: 我想用正则取得 张三 这两个字,其中@ 和:都是英文的";
          Pattern p = Pattern.compile("(?<=@)[^@:]+(?=:)");
          Matcher m = p.matcher(str);        
          if(m.find()){
              System.out.println(m.group());
         }