日期:2014-05-19  浏览次数:20677 次

找一个不匹配双斜线的正则表达式!
找个 java的正则表达式,本来想找到所有非注释的代码 但发现太复杂,现在先考虑简单的情况吧,能匹配下面的 aaa的正则表达式

  //aaa
// bbb
  ccc

上面代码,aaa在注释后面,bbb也在注释后面有空格,这2种情况都不匹配! 我想匹配到的是ccc(可能前面有空格),不知道怎么写? 写了一个怎么也不行 
String pattern="[^//][a-zA-Z]";
按理说 ^ 加上//意思就是最前方不能出现 //的意思,但是不行! 请大侠帮忙!

------解决方案--------------------
Java code

String a = "//aaa";
        System.out.println(a);
        Pattern pa = Pattern.compile("^(//)([a-zA-Z]+)");
        Matcher ma = pa.matcher(a);
        if(ma.find())
            System.out.println(ma.group(2));

------解决方案--------------------
String pattern="[\w]*";
这个是不是就可以啊
------解决方案--------------------
Java code

        String a = "//aaa";
    String b = "/bbb";
    String c = "ccc";
        Pattern pa = Pattern.compile("^[^([/]{2})]([a-zA-Z]+)");
        Matcher ma = pa.matcher(a);
        Matcher mb = pa.matcher(b);
        Matcher mc = pa.matcher(c);
        if(ma.find())
            System.out.println("ma="+ma.group());
        if(mb.find())
            System.out.println("mb="+mb.group());
        if(mc.find())
            System.out.println("mc="+mc.group());