WJC_SX 2023-02-15 10:22 采纳率: 95%
浏览 38
已结题

正则表达式,提取Host和Port

Java 正则表达式提取 jdbc:mysql://172.16.2.129:3306/ETLTest?useSSL=false 中的 172.16.2.129 和 3306

输入 jdbc:mysql://172.16.2.129:3306/ETLTest?useSSL=false
输出:host:172.16.2.129 port:3306

初期只有mysql,后期需要加入Oracle等其他的url连接

  • 写回答

4条回答 默认 最新

  • Huazie 优质创作者: 编程框架技术领域 2023-02-15 10:44
    关注
    • 先看截图:

    img

    • 代码参考如下:
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * @author huazie
     * @version 2.0.0
     * @since 2.0.0
     */
    public class Test1 {
        public static void main(String args[]) {
            Pattern pattern = Pattern.compile("((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}:\\d+");
    
            String url = "jdbc:mysql://172.16.2.129:3306/ETLTest?useSSL=false";
            Matcher matcher = pattern.matcher(url);
    
            if (matcher.find()) {
                String group = matcher.group();
                System.out.println(group);
                String[] hostArr = group.split(":");
                System.out.println("host = " + hostArr[0]);
                System.out.println("port = " + hostArr[1]);
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 创建了问题 2月15日