现在有字符串String str ="****市黄浦区*******",
我想用正则表示,得到市和区中间的字即得到:黄埔,该怎么做,*代表其他字

解决方案 »

  1.   

    楼主不用正则也行吧。
    str.substring(str.indexOf("市")+1,str.lastIndexOf("区"))
    你把可能的情况都说一下。
      

  2.   

    String result = "";
    Pattern p = Pattern.compile("\w*市(\w*)区\w*");
    Matcher m = p.matcher(str);
    if (m.find()) {
      result = m.group(1);
    }
      

  3.   

    自己实现也挺麻烦的,参考一下吧:import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;public class Test {    public static void main(String[] args) {
            String[] strs = find("****市黄浦区***********市浦东新区*******", '市', '区');
            System.out.println(Arrays.toString(strs));
        }
        
        public static String[] find(String str, char start, char end) {
            if(str == null || str.length() == 0) {
                return new String[0];
            }
            char[] chs = str.toCharArray();
            boolean isStart = false;
            List<String> list = null;
            for(int i = 0, offset = i; i < chs.length; i++) {
                if(chs[i] == start) {
                    isStart = true;
                    offset = i;
                    continue;
                }
                if(isStart && chs[i] == end) {
                    list = addSub(list, chs, offset + 1, i - offset - 1);
                    continue;
                }
            }
            return toArray(list);
        }
        
        private static List<String> addSub(List<String> list, char[] chs, int start, int end) {
            if(list == null) {
                list = new ArrayList<String>(chs.length / 2);
            }
            list.add(new String(chs, start, end));
            return list;
        }
        
        private static String[] toArray(List<String> list) {
            if(list == null || list.size() == 0) {
                return new String[0];
            }
            return list.toArray(new String[list.size()]);
        }
    }
      

  4.   

    北京游戏公司急聘java游戏开发师职位描述
    1、拥有扎实的JAVA基础,算法基础。
    2、熟悉JAVA多线程编程,JAVA网络编程,并有一年以上的全职编程经验。
    3、很好的逻辑思维能力与想像力。
    4、熟悉MYSQL数据库,熟练使用SQL语句。
    5、勤奋好学,对新知识掌握速度快。
    6、踏实肯干,能够很好的进行团队合作,和任务多时的加班。
    7、热爱游戏,并希望把游戏编程当成自己的事业。
    有意者可投简历至:Email: [email protected]
      

  5.   

    public static void main(String[] args) { String str = "****市黄浦区*****市黄浦2区*市黄浦3区* ";
    Matcher m = Pattern.compile("市(.+?)区").matcher(str); while (m.find()) {
    System.out.println(m.group(1));
    }
    }
    =============
    打印:
    黄浦
    黄浦2
    黄浦3