现在有字符串
/jg/ls/learch 
/jg4c/ls/learch需求:只保留/jg 或者 /jg4c
后面的全部去掉正则也好,截取字符串也好, 在第二个"/"后面 如何判断啊没想好怎么写

解决方案 »

  1.   

    package com.test;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    System.out.println(getString("/jg4dfsdfg/fjdslk/gjdlskf/fjsl"));
    }

    public static String getString(String str){
    Pattern pt = Pattern.compile("/jg[\\w]*");
    Matcher matcher = pt.matcher(str);
    boolean flag = matcher.find();
    if(flag){
    String str1 = matcher.group();
    return str1;
    }else{
    return "";
    }


    }
    }
      

  2.   

    package com.test;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test { public static void main(String[] args) {
    System.out.println(getString("/jg4dfsdfg/fjdslk/gjdlskf/fjsl"));//测试
    }

    /**
     * 根据传进的字符串提取自己想要的字符
     * @param str 提取的目标字符串
     * @return 返回取出的字符串,如果没有则返回空
     */
    public static String getString(String str) {
    Pattern pt = Pattern.compile("/jg[\\w]*");//正则表达式控制取出的字符
    Matcher matcher = pt.matcher(str);
    boolean flag = matcher.find();
    if (flag) {
    String str1 = matcher.group();
    return str1;
    } else {
    return "";
    }
    }
    }
      

  3.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TestRegex{
        public static void main(String[] args){        String s = "123123123";//"/jg4c/ls/learch";
            
            //方法1
            Pattern p = Pattern.compile("^(/jg(?:4c){0,1}).*");
            
            Matcher m = p.matcher(s);
            if(m.matches()){
                System.out.println(m.group(1));
            }else{
                System.out.println("no found");
            }
            
            //方法2
            s = s.replaceAll("^(/jg(?:4c){0,1}).*", "$1");
            System.out.println(s);
        }
    }
      

  4.   

    晕,发错了...
    你的要求是
    对/A/B/C的情况只要/A是吧?
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TestRegex{
        public static void main(String[] args){        String s = "/jg4c/ls/learch";
            
            //方法1
            Pattern p = Pattern.compile("^(/jg[^/]{0,1}).*");
            
            Matcher m = p.matcher(s);
            if(m.matches()){
                System.out.println(m.group(1));
            }else{
                System.out.println("no found");
            }
            
            //方法2
            s = s.replaceAll("^(/jg(?:4c){0,1}).*", "$1");
            System.out.println(s);
        }
    }