在java类中用 Pattern 和Matcher 来检测字符串是不是满足(字母数字)(特殊符号)(字母数字)(特殊符号)结束符这样的格式.(特殊字符可以是/|?,结束符可以是$#) 请教满足可以检测是否匹配的正则表达式!

解决方案 »

  1.   

    String strRegex = "^\\/project\\/module1\\/\\S$"; //匹配是否满足这样的表达式/project/module1/*,*为任意东西
    Pattern p = Pattern.compile(strRegex);
    Matcher m = p.matcher(str);  //str待检测的字符串 
    if(m.find()){
      //...
    }
    \\表示输出一个\,对于转义字符应该这样:\转义字符
    或者直接
    if(str.matches(strRegex)){
      //
    }
      

  2.   

    具体点说是要匹配这样的格式:sss23=333/ddd=aaa/$,请教!
      

  3.   

    String strRegex = "^sss23=333/ddd=aaa/\\$$";
    String str = "sss23=333/ddd=aaa/$";
    if(str.matches(strRegex)){
      System.out.println("yes");
    }else{
      System.out.println("no");
    }
      

  4.   

    谢谢 疯狂的石头,可能是我没有说清楚我的想法,其实那名值都不是固定的,而且还是重复的,就是重复出现多个namn=value/name2=value2/$,就是要匹配这种格式,名字和值只能是字母和数字,名字和值之间用=分开,一对名值对结束用/分开,最后字符串结束用$表示.请教!
      

  5.   

    那正则表达式这样写
    String strRegex = "^([0-9a-zA-Z]+=[0-9a-zA-Z]+/)+\\$$";
      

  6.   

    String reg = "(\\w+)=(\\w+)";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher("test=test/test2=test2/rr=11/$");
    Map map = new HashMap();
    while (m.find()){
    map.put(m.group(1), m.group(2));
    }你自己改改看吧……
      

  7.   

    String reg = "(\\w+[^\\w]+)+";
      

  8.   

    String reg = "(\\w+=\\w+/)+\\$";
      

  9.   

    谢谢各位的大力支持,谢谢疯狂的石头,谢谢shan1119,你们的思路是对的,谢谢各位!