ahuxi
2016-11-05 14:30
采纳率: 77.8%
浏览 1.1k
已采纳

java中正则表达式如何查找类似于这样的字符串

我想写一个正则表达式,这是开头[A-Z][99],其实我想输出的是在99前面的
字符串,不想在输出的时候输出99,因为99同时也是字符串开头部分的一部分,这
么做会导致匹配不完整
应该怎么修改呢,结尾应该是在99前面的大写字母,而不是大写字母+99,怎样才
能写出带有排除性质的字符串呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • guwei4037 2016-11-05 14:50
    已采纳

    () 表示分组

     public static void main(String[] args) {
            Pattern pattern = Pattern.compile("([A-Z]{1,})[99]");
            Matcher matcher = pattern.matcher("ABC99");
            if (matcher.find())
                System.out.println(matcher.group(1));// ABC
        }
    
    点赞 打赏 评论
  • 陈 俊 刚 2016-11-05 14:35
    点赞 打赏 评论
  • HelloJay1995 2016-11-05 14:55
     public class Test01 {
        public static void main(String[] args) {
            String reg = "99[A-Z]*";
            String str = "99SFGASD";
            String s = "dsafj";
            boolean a = str.matches(reg);
            System.out.println(a);
            boolean b = s.matches(reg);
            System.out.println(b);
        }
    }
    
    

    java是全匹配的

    点赞 打赏 评论

相关推荐 更多相似问题