You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse搜索正则:查找调用getConnection但缺失closeConnection的方法

Eclipse正则查找未关闭自定义数据库连接的方法

搜索前置配置

打开Eclipse搜索窗口(快捷键Ctrl+H),切换到「File Search」标签页,做如下配置:

  • 勾选「Regular expression」(正则表达式)和「Case sensitive」(区分大小写)
  • File name patterns处填写*.java,限定仅搜索Java源码文件
  • 按需选择搜索范围(整个工作区/当前项目/指定文件夹)

可用正则表达式

(?s)(public|protected|private|static|\s) +[\w\<\>\[\]]+\s+(\w+) *\([^\)]*\) *\{(?:(?!\bcloseConnection\s*\()|\btry\s*\([^)]*getConnection|\bgetConnection\s*\()*?\bgetConnection\s*\((?!\}\s*$)[^{}]*\}

规则说明

  • 开头的(?s)开启DOTALL模式,让.可以匹配换行符,适配Java方法多行编写的场景
  • 前半段匹配标准Java方法定义,覆盖public/protected/private修饰符、静态方法、返回值带泛型等常见写法
  • 核心逻辑限定在方法体范围内:匹配存在getConnection()调用、同时不存在closeConnection()调用的方法
  • 默认自动排除try-with-resources中调用getConnection的场景(这类连接会自动释放,无需手动关闭)

调整适配说明

  • 如果你的getConnection或closeConnection方法需要传入参数,将正则中对应的\s*\(替换为\s*\([^)]*\)即可适配
  • 受正则语法限制,极端复杂的多层嵌套代码块可能出现少量误判,搜索结果出来后手动核对即可
  • 如果不需要排除try-with-resources场景,删掉正则中|\btry\s*\([^)]*getConnection这一段即可

内容的提问来源于stack exchange,提问作者jitendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 10:39:02