如何通过正则表达式获取到:jdbc:hsqldb:hsql://localhost:8888/test 里的localhost和8888值

解决方案 »

  1.   

      public static void main(String[] args){
        String str = "jdbc:hsqldb:hsql://localhost:8888/test";
        Pattern p = Pattern.compile("//(.*?):(\\d*)/");
        Matcher m = p.matcher(str);
        if (m.find()) {
          System.out.println(m.group(1));
          System.out.println(m.group(2));
        }
      }
      

  2.   

    不知道你啥意思,正则是判断是不是的,而不是查询的。如果查询String url="jdbc:hsqldb:hsql://localhost:8888/test"int p1=url.indexOf("localhost");
    int p2=url.indexOf("8888");
    如果你是认为localhost和8888的是变量的话,则用前后截断int p1=url.indexOf("://");
    String s1=url.substring(p1);int p2=s1.indexOf(":");
    String host=s1.substring(0,p2-1);
    String s2=s1.substring(p2+1);
    String port=s2.substring(0,s2.indexOf("/"));