比如说    String regexString = "Look at me, come on!";
    Pattern p = Pattern.compile(""); // 这里Pattern.compile(""); 里面应该怎么做呢?
     Matcher m = p.matcher();顺便问下,正则表达式中如何才能不以某个单词打头,比如说不能以bug打头可以有字母数字组成的大于8小于12个数的字符串如何实现,
我就知道"(这里怎么写?)[a-zA-Z0-9]{8,12}"

解决方案 »

  1.   

    不能以bug打头可以有字母数字组成的大于8小于12个数的字符串如何实现, 
    我就知道"(这里怎么写?)[a-zA-Z0-9]{8,12}"
    答:如:不能以bug打头的。
    String reg="(?!bug)[a-zA-Z0-9]{8,12}";
    System.out.println("bugga111111".matches(reg));
      

  2.   


    class Regex2 {
    public static void main(String[] args) {
         StringBuffer buf = new StringBuffer();
         String regexString = "Look at me, come on!";
         Pattern p = Pattern.compile("[a-z]+"); // 这里Pattern.compile(""); 里面应该怎么做呢?
         Matcher m = p.matcher(regexString);
         boolean b = false;
         while (b = m.find()) {
    buf = buf.append(m.group());
    }
         System.out.println(buf);
         System.out.println(buf.length());
                 String reg="(^!bug)[a-zA-Z0-9]{8,12}";  //要以非bug开头就可以了^ The beginning of a //line
         System.out.println("bugga111111".matches(reg)); 
         
    }

    }问题解决了
      

  3.   

    感谢大家的回答,第二个问题解决了"(?!(bug)[a-zA-Z0-9]{8,12})"正解,3楼的"[a-z]+"尝试了匹配不了所有的小写字母,比如Look,它被认作ook,当做一个单词,统计出来是所有的大写和小写的单词了。问题一还没有解决结束会统一给分。谢谢大家了。
      

  4.   

    答:
                  String ss="Look at me, come on!Li Pin!";
          String reg="\\b([a-z]+)\\b";       
          Pattern p=Pattern.compile(reg);
         Matcher m=p.matcher(ss);
         int cc=0;
         while(m.find())
         {
          cc++;
         }
          System.out.println("小写单词的个数:"+cc);程序运行结果:
    小写单词的个数:4
      

  5.   


    matches("(?!bug)[\w]{8,12}")
    不知道对不?
      

  6.   

    问题解决了,特别感谢jiangnaisong 。。弱弱的问一句关于边界匹配符号,这个"\b"在什么时候使用的?是不是只能用于空格分隔的时候。谢谢。